- converted to TS
- will be later extended with additional functionality
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I883da61018808d79d616d7346e86dadf9fa7079e
That condition shouldn't be checked before scrolling to selection position.
This fixes "doesn't scroll to searched text" issue.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I9f901ba2fa15ade5416ad68f62e356e34163c641
- Toolbox: Remove height min-content as it's prone to problems and different
outcomes depending on the context. Plus we don't need it if we enforce
it via grid
- Center all elements
- Including unotoolbutton
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iadc55f0d253dd4a06c11ad8cd062c02863b1d12f
When editing formula buttons were misaligned
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I1208656751d9d3238d5a980503fd07bb868fd374
Before this commit:
- Impress on tabbed and compact view didn't have the common (and in
used in the other apps) 'unoResetAttributes' css class
Set all with the same CSS class so integrators with customizations
are not force to single out special cases.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I82deb98a628b527470fcd2e54f1374df21380bfa
If we follow user who does editing on other part - we need to
switch to it first. Whitout that we failed with error in the
browser console due to missing marker on the screen.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I3d4150f5c8f70240d3a386a8d5a7fdbc4e8d37d9
- avoid using fields manually, use helper functions
to keep correct state transitions
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iad466ab00b256c86eebf9da2609edc68513e988c
as if the pending one was launched with the new delay priority
initially
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie5553492c52baaedbd84dc1450328ce8c3b623bb
Button invokes the uno:InvertBackground command than user can
see the inverted document color even app is dark mode.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Ie273ec4b3d26ffbc38384dc39943b8656e4364d4
- the label between Structure tab and TreeView was misaligned. This is corrected with this commit.
- label "Structure:" changed to "Functions in use and their validity:" with https://gerrit.libreoffice.org/c/core/+/168161 (6c15d246afa1774298e1438f2117b593a065bfe4)
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: I197fb84154226709395f4f2789fc288367c00f05
The matrix saga seems to be solved now
- There were 3 rooms. I needed to remove both local and published
address from there (the old matrix.org room)
- Skyler helped by setting the local address of the active room to the
matrix.org
- Then we could set the published and the main address as #cool-dev:matrix.org
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I7e73e0750dd94744eb0706230da40ab51bbad7f7
1) User1 start resizing row/column
2) User2 create a new annotation
3) User1 finish resizing row/column
4) Server update comment position
5) User2 new annotation is hidden
if comment is new, do not hide when updating new comment data.
Change-Id: I593dff167f75cc3dc451467a7d76a09f94a3a556
Signed-off-by: Henry Castro <hcastro@collabora.com>
Recent a failed jenkins job had a lot of output, the tail of the log
starts with: "Skipping 3,970,746 KB".
I guessed that the problem is that the fuzzer figured out what is the
protocol to change log levels, but it isn't there yet.
What seems to happen is that fuzzer/Common.cpp defines the log level to
be "none", but this is not handled at GenericLogger::mapToLevel(), so we
managed to enable trace level for known-broken input where we're not
interested in the errors/warnings.
The fix can be tested by adding assert(false); to Log::log(), previously
the fuzzer failed with an assertion failure for a simple input like "12"
(unknown command) and now it just exits silently.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ib5f4bedca706d7a0310a2eb9f661053a3095822d
increased jsdialog width to fit content when necessary.
removed margin from icon to make it look even spaced in listview (i.e: manage changes, zotero add citation)
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I225b5b5d42d573cb4afcdb428e2eb3b81aa99073
In case of misconfiguration (missing userInterfaceMode), deprecated "classic" or "default" userInterfaceMode, which is the default, use notebookbar.
Users can still use "compact" as documented to use the compact style
(formerly called classic).
Signed-off-by: Méven Car <meven.car@collabora.com>
Change-Id: I00ee65edb21fcf80724bc83f947341dfdc5c8ed6
Previously, zooming using the +/- zoom buttons caused your view to jump
such that alternating in/out zooms would move you to the top left of the
document
Additionally, the zoom did not zoom around the correct position, so a
cursor in the frame would not correctly zoom around the cursor
This is now fixed
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I6d468795abbb972174774cf1620cb4a0959142f2
- we don't depend on OnMouseUp event of AutoFillMarkerSection.ts anymore
which makes the popup more stable in terms of open and close.
- requires: added LOK_CALLBACK_CELL_ACTIONS with
https://gerrit.libreoffice.org/c/core/+/168086 - 1cf2a23c7cb0a149562635432b003164059617b5
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: I2294f6aa091231c2ddf1a448776f51a3a892b646
- undo uno calls are removed: no need
- unified the popup operations with _handleKeyDownForPopup()
- make popup entries translatable
- add explanation for AutoFill
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: I69935150597c90851c3d731b42b1adf072ae29cd
- Esc key to close AutoFillPopup
- ArrowDown to focus elements inside AutoFillPopup
- ArrowDown/Up to cycle inside the popup
- also remove "this._map.fire('closeautofillpopup')" from
"Ctrl + Alt + PageUp/Down" since we don't need to close
AutoFill popup anymore here as we close the popup immediately
after pressing "Ctrl" key
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: Iac4bbd1104f3140bd47842daaae2eb3bfa87daef
(cherry picked from commit 6ab88d7bf3)
Added functionalities for "Copy cells" and "Fill series".
- Copy cells
this.map.sendUnoCommand('.uno:FillSeries?FillStep:string=0')
- Fill series
this.map.sendUnoCommand('.uno:FillSeries?FillStep:string=1')
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: I77a3512627e35f2a176b147d3f54f08c7f5f7b08
(cherry picked from commit 77c1764fb3)
close AutoFill popup when
- sheet tab is clicked
- new sheet is inserted
- sheet tab is switched using Ctrl+Alt+PageUp/PageDown
keyboard shortcuts
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: I03711d202b47813d101bd066db1a3e8e106430e3
(cherry picked from commit 8529063378)
AutoFill popup has two options:
- Copy cells
- Fill series
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: I08ad88afad1bb6bd2d746a9a8964f1b4446ae7c7
(cherry picked from commit 91f080976f)
- this test will check input element getting set to it's right state after update on jsDialog
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ib22dd0c5d6c6ab95650617480c137b306b8a6e80
- Input elements in jsDialog does not change state after CORE update message
- this is because in previous commits we changed input element structure.
- we should Synchronize the child elements with parent.
- this patch will Synchronize disable state of parent with it's child elements
Change-Id: Ice94de732dc7392f3c79100e6a2d60480294eb0e
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
- if we switch to compact mode & server get reconnected some icons are visible in desktop which should be only visible in mobile view.
- in control.toolbar.js we call updateItem method for icon in mobile
- `toolbar.updateItem({id: 'closemobile', type: 'customtoolitem', w2icon: 'editmode'});`
- after this updateItem call we should also check all condition about that item like
- item should be visible in mobile or not
- item should be available in tablet or not etc etc
- this patch will do that checks
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I11adc3d94cacd4afe85e177d050ccc73f3112872
unblock CI from:
cy:command ✘ assert expected **<tspan.TextPosition>** to have attribute **y** with the value **'3286'**, but the value was **'3285'**
error
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0ccb209c12e15a829f99f8323bf7b1ee8ca39aa0
- Remove all the rules that are not longer active (better solutions
were implemented)
- Remove also #fontnamecombobox.notebookbar declaration. Not only top
and padding were not applicable but we were setting the width which in
turn was creating a different gap (bigger than the grid gap) and
moving icons out of place
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ibf608f41d25beb3120b5b6d9f032673697f018b8
- This has no effect anymore since the id has changed
- Furthermore, the fix is not needed anymore since meanwhile impress
and draw has seen new button additions (shadow, fontwork) that renders
this obsolete.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id1990e9c6e227cf2f2567b18e7826fee81865a69
Snackbars will appear one after other now.
Add forgotten SnackbarController to Makefile.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iaf5ed98f8384c2688adc9653948137f23fb0ce3e
Currently translated at 100.0% (478 of 478 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (110 of 110 strings)
Co-authored-by: Ali <alimahwer@yahoo.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-app/ar/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/ar/
Translation: Collabora Online/Android app
Translation: Collabora Online/Help
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I7a63416359b15bd99dde457b06a1912e6d434b75
If we have all default values of imgSize, wid, old-wid then we
should simply not serialize these out to save space and improve
readability.
Unfortunately, this means that we need to catch the mutation of
the TileCombined's content in two places; now just one. Building
the queue of rendered tiles to send back is now moved and
wrapped into a TileCombinedBuilder class - this also lets us
stop serialize taking a random vectors of TileDescs. However
the DocumentBroker::handleTileCombinedRequest method needs to
set the force-keyframe oldWid=0 flag on individual tiles and
then update the TileCombined.
Ideally we would have a nice visitor API and drop the non-const
getTiles() method that returns a reference to our internal vector.
Update tests, to not have redundant attributes, and add more tests
to ensure redundant attributes are removed.
Change-Id: Id76d3ae14d459d73bbae8112d840dea27f66588b
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
- Replacing the height value with the CSS variable will help maintain better consistency.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I0627778919885c8ee0a989f0b47b976304892585
Reduce size of UIManager and also it will make it possible
to add queue of snackbars to show.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I221049f48f471d85795ede7922a668eef4c7f0df
So it behaves similar to other hello/hello-world documents.
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I529b5bec81c1bf5085300f8c52311db023c6b09a
- we have now some uno item present only in dark mode.
- so there is no resone to check image exist or not for light mode.
- we will set dummy url for those image elements.
- this patch will consider those items and will not throw error if icons are not present light mode
- Example: please see `invertbackground` item in view tab after change to dark mode
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I6aa2fc9d7bdd356617a808f17d14f77bc8453496
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
- `zoom` menubutton is not a image to represent so we will make `image: false`
- this pathc will fix image not found error for `lc_zoom.svg`
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I39c2d68f4b0afc7b3831c2082be2ae1a315b2d8e
Before this commit the search field wouldn't fill the available space.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If079942b1e594a0461835e52ad65827a639c6173
Make those transparent since color would just look odd within tab
background and more importantly because they offer no interactivity.
----
Currently the treeview accepts clicks (not just the expanding and
collapsing) but also children accept clicks but do nothing. Probably
we should fix this.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ifc53d0099a19103b15895dc8b76127034b05f3c1
- Use all the available space on both tabs' content
- Fix Structure tab's content
- make the tree view extent the available space (1fr)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib1c9e852a3a292f795675365040318c1d5602f35
Before this commit the tabs in this dialog were being rendered as top
level dialog navigational tabs. However, this is not the case. Add
background and border to clear separate one and the other.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I158ee1e1d4d163417f5055459adfeac47b6ab437
- remove use of Leaflet's
- change working js code to ts
- please check above commit messages for understanding of implementation.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Iee222bbdb343730014260c1785a90e68c6dedfd1
- we are string previous response values of top/bottom margin
- resone is because we need that values to pass after dragEnd.
- but if we change section foucs from Header to Footer or Text area to Shape then we need to reset that old values with the incoming response
- this patch will do that.
- for `table` we will hide the marker as we do not need that. table already have there marker to resize.
- added some edge cases like if start marker goes beyond end marker
- start and end marker should not cross limit beyond page top/bottom
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Iffd3cbf08806666b858d9c3da7ca6362085223dd
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
- Send Upeer and Lower space value for header and footer according to drag
- we need to send both values in core.
- even if we drag either upper or lower we will send values accordingly but both values should be updated
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I4ef3287c5afe6e1eef5aac225d3c06ca9d1fd9e5
- As we do for horizontal ruler we need marker that will change margin of Header and Footer of the document
- current patch will have design where user can see markers in vertical ruler
- you can drag and change potition of marker.
Improvments that still need to do:
- user can drag but it will not change size/margin of header/Footer
- next we will pass info to CORE according to corrdinates we got from drag
- it will update text potition on document
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I9663a75d5c84eace784266c76be12abd762434bb
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
- Before this commit vertical ruler stays only in first page
- if we jum to page 2,3 so and so ruler won't change it's possition
- but i have added some calculation based data we recevice from CORE
- calculation:
- we need to consider pageoffset for vertical ruler
- check if cursor moves to other page
- then add total Height of previous pages.
- for Ex: if we are at page 3 then ruler.marginInlineStart should additionally have total height ( page1Height + page2Height)
- this will place ruler to exact possition where we want
- next : add Top and Bottom margin drag
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ie2a2d4e5f0cfd627bcafd81230ad33b7aec280a2
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
- add new LOK callback for vertical & horizontal ruler update
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I3c0e26f22072de4612e128d58ac41b629be82807
Add vertical ruler and implement margin calculation
- Added new vertical ruler file to separate it from horizontal ruler calculation
- For vertical ruler we do not need tab stops so removed it.
- next stpe will be to implement add top and bottom margin by drag
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I8186c874ff59571db7a75ec4c31f81fc655ef301
This stops a huge amount of parsing, re-parsing and conversion
from strings and back, making our few N^2 loops over the tiles
much more efficient.
Retain queue tests with the same strings via using a helper
to convert back to something expected.
Replace TileDesc::getId() with isPreview().
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: If40fc45f1fb474d37371e4b949da5fdfc594fdc8
Leave them as strings for now; this should be a pure re-factor.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ibad2bc343afe3fe32ea729623f6b03575c7b0121
- improved color contrast between text area and edge.
- changed --color-canvas for contrast between text and edge area.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I8dd8296901da6ee5ce59704f7e27d8c37d29e8b1
Parsing a string to a TileDesc and then comparing is inefficient
enough, without doing that in an N^2 loop for the SenderQueue.
Still N^2 - and of dubious value in the world of deltas; but in
almost all cases a simple string + integer compare.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ibe8230679e27b98cfa95567fea700e2f7d5ac09c
* On Calc, when user starts editing a cell and uses zoom, core side sends "cursorvisible: false" message.
* This hides the cursor.
* We also hide the cursor while user is zooming in / out.
* But the core side zoom doesn't set the opacity back.
This commit fixes the input handler's visibility issue.
But the core side will continue sending the cursorvisibility message.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: Ibf679c132f96dc3504de17d00958133bd45244fb
since:
commit 6f49f9398e
Date: Thu May 9 09:19:44 2024 +0100
Split outbound callback processing from incoming message queueing.
an out by one adjustment
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie5c2133dd7239aa62c017306c962c26ea6e526bb
Currently translated at 100.0% (588 of 588 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (588 of 588 strings)
Co-authored-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Co-authored-by: Pedro Silva <pedro.silva@collabora.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt_BR/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I9c45a233e479ea10c9de092265afee238a793b75
Currently translated at 100.0% (110 of 110 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (588 of 588 strings)
Co-authored-by: Ali <alimahwer@yahoo.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-app/ar/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/ar/
Translation: Collabora Online/Android app
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I8f8cc2a8f27e50d3a60b6a8ba3f8adc9e8dbd6d9
Replace svgs introduced in 3efbfaeccd
- Animation and smiley svg: Use gray
- Don't use a smiley face, use instead something more semantic such as
a checkmark
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I38e341ae393c59e785adff9207f8111d68c341ef
When we start to type a formula in a cell eg: =S
We will see the possible function names in a popup.
If we move with "ArrowDown and ArrowUp" and enter, or direcly select a
function with mouse, function name will be automatically inserted into
cell. Then we will see the usage details of the selected function in
another dialog.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Ic06ca0d904770e95bb85ccdf9a73f60b7d5c5eb0
- problem: in combobox widget we were always passing the
`_defaultCallback` which will send `dialogevent` to server but in
zotero's case the callback is different
- also fixes some `undefined type` errors
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I7bd7aff6a1a3a9715123c1335ea83ab13fd7b22a
We now always cache the uncompressed file data even
when compressing fails. If no compressed data exists,
we return the uncompressed version.
Change-Id: I885275dac526f4d47ea74d6badcb609390e7c139
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This removes explicit file-reading logic
with the existing utility function that
is more robust and avoid the C++ streaming
abstractions altogether.
Change-Id: I170b8497a4f9185f1b29e632da27a3520ca0347a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
In case an integration doesn't allow clipboard interaction via
<https://sdk.collaboraonline.com/docs/advanced_integration.html#allow-the-clipboard-permission-query>,
we end up in a situation where navigator.clipboard.write is not
undefined, but is broken.
By the time navigator.clipboard.write() fails, it's too late to fall
back to the old copy code, as the security context is already gone.
Fix the problem by improving the failure handling: show the popup to try
again copying, remember that navigator.clipboard.write() failed and
prefetch the text selection, so next time a copy is tried (via the
keyboard), the selection doesn't need re-creating. (Normally the
selection change would trigger the prefetch, so select->copy->copy-again
would still fail.)
Note that paste doesn't have a similar problem, since there we always
try the old paste code first, and only use the new paste code if the old
one fails.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I12ea4810395970421000d213744d1838213c7a07
Possibly the combination of "gzip" and us being unhelpful about
lengths could lead to browser hangs; who can say.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I632dfc46afde3883544292d687bdff023bccc8ac
Now that accessibility checker has change its command it's best to add
back in the CSS class that was being added automatically (based on the
uno command) for various reasons:
- Main one: the ".unoSidebarDeck.A11yCheckDeck" is less than ideal
class name (it includes a dot in the middle)
- Integrators might have customizations targeting the previous known
css class
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I7685d000a2110872cdbe83323136b7a6be604ca3
Currently translated at 82.8% (396 of 478 strings)
Translated using Weblate (Arabic)
Currently translated at 82.8% (396 of 478 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (587 of 587 strings)
Co-authored-by: Ali <alimahwer@yahoo.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/ar/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/ar/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I357c4d4b539b0331d074d9d3608f0e63c6269527
Tab buttons and their background (gray) looks odd, extending the full
width even if there is no more tabs to show.
This sub container cannot be allow to extend (flex-grow). Otherwise,
we end up with tabs background extending all the available area.
We can safely turn this off because the parent element
".notebookbar-tabs-container" already sits in place and extends the
whole area.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I6ec3fa6f40d4138420569e9acf60c906a7c43035
It seems when updating CSS we introduced the "w2ui-toolbar"
with missing dot: 826592458c
But it seems the problem is inherited from long ago with
"#toolbar-up-more,w2ui-toolbar" (comma instead of dot) introduced in
6901ad9251
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia7023581979f0644b90437a6d65aaae8288360f2
1. Load with notebookbar mode
2. Switch to compact mode via UI
3. Inspect -> see the existence of "#closemobile-button"
- a div (unotoolbutton) with id closemobile that is hidden, has a
button (unobutton) with id "closemobile-button" that is generated
with an undefined img "lc_closemobile.svg" -> we don't have that
Add an alias. I don't think we ever use this. It seems to be a
temporary state that never gets to be shown to the user (is also
hidden) and when the UI is updated the HTML structure
changes. Nevertheless best to reference an image that exists
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I500737d0e9a7c321f9f92e55c9348ca7064a6625
Mobile:
- This is not used anymore and the respective element is now being
targeted as `toolbar-mobile-back`
- closedoc.svg: .editmode-off .mobile-wizard-back .sub-menu-arrow
Desktop:
- close_toolbar.svg is not used anymore. We re-use the same
closedoc svg and it's been targeted as #closebutton
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia02378811886824c77fa525911a2bf8901887037
We have the that button for Writer, Calc, Draw, Impress
menubar and notebookbar
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I745c010749b8c5b88c0d181418f2a47921a94620
cypress-tags has fixed their npm publishing
Upgrade to take advantage of dependency updates
Reverts commit 873485f479
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Ib4128dd4224a70777eaace0bf1e4bc14974a5189
For all status bar buttons
- Fix missing pointer
- Also, at leat for now, don't add border and don't add different
background. This is a status bar and adding those contributes to the
overall bulkiness. In the future we could perhaps remove the vertical
padding of the status bar and introduce back the background on
over (and remove the border radius). This would make the status bar
slimmer and slicker (so maybe we can turn its visibility on by default)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I2b01d1d6c35ff2b3f487de0417170398d587a565
To silence errors until feature arrives. Occurs after
following core commit:
11b936629dd4ef9308d63b312900b8b7c8ff19b4
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I6d9b01b265e3f07db2bc4ac7da46cbfcd0e17da5
Warn, flag save as failed, and disable bgsave in these cases,
perhaps we will not crash main kit process next time around.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ia4f3d079a5503739efc11e408ed431c3b652860b
No known test vector for this, but it may happen and we don't
want to hang saving with non-interactive interactive UI coming
from the bigsave process, that can't get events back.
If this happens - something is very odd, and we should disable
background save; so do that and try to clean-up in time.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ifde2fe9ac8719321e38695725981b1f8b2b554f5
Apparently a transient victim of the transition to JSDialog.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I93c55db28d8ab2cc6b43dbce558d60dfa523fa76
Avoid complexity and wasteful creation of new processes in many cases.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: If7713f80b390a8e0e53b7253244b838b325b745c
Currently translated at 100.0% (587 of 587 strings)
Co-authored-by: Francisco Gabriel Chardin <fran@camba.coop>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/es/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I46f645bb20e021e4237b0153c4da2e321be9431d
Scroll to cell cursor after a part change. Relax the conditions.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I8c1aad11a00145b67e11afc2d11f9ebca0aa6feb
Also remove SCREENSHOT_FOLDER environment variable, this
information is available from Cypress.config(), and if it needs
to change it should be set there.
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Idbfb627fa818a6864da355a990dbac2589f8df37
queue addresses that need resolution, use async dns to resolve them
and when final result known dispatch the capabilities to be sent
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I13b6d0c4d47e6e8ecd06f7a449c8f808a41e5e7a
as a separate stage
getCapabilitiesJson turns out to not be called in the MOBILEAPP case
so put inside !MOBILEAPP ifdef and remove unused branch
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie144e4612aa36be88169e44d7eda7825b49a03c8
Enable Caolan's unit test, pass the proper 'disconnect' message
to the Kit so it can close the underlying window / resource for
the view.
Potentially this also removes 'phantom' users in the user-list
which might be another symptom of this issue.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ib0d0c5cefa7033fff5827d0a825a932cc12f8323
It seems there are two handler for this message.
Since we moved the authentication logic ahead
of the web-socket upgrade, the handler for
the unauthorized error doesn't display the
message. This fixes the it so now we correctly
display the unauthorized message.
Change-Id: Ic62476c74ce1583a2d7f33e1233e6fafd43d3bc4
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Before this commit menu buttons were always generated with img even if
it's not applicable. Example, the StateTableCellMenu (located in Calc
status bar that allows setting a state according to the function
chosen in the submenu): This text-only menu was generated with img
and thus throwing a 404 error in the console.
- Allow any unoToolButton to be set without image via option
- Add image: false option when setting StateTableCellMenu in the
statusbar
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I3fc3b5954f80229835526819b9b80d2a650bd922
Causing excessive logging in error; we would find the right session
next time around the loop; from:
commit 6f49f9398e
Author: Michael Meeks <michael.meeks@collabora.com>
Date: Thu May 9 09:19:44 2024 +0100
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I33f696e4fae899a896d94cbeb70d5d9306f3b414
This is a regression from commit 9923e69595
This is because jQuery .child() is only for the direct descendants.
Use .find() instead which will search down the DOM tree.
This restore postmessage Hide_Command / Hide_Button and Show.
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: Ibe84c520c9786c6c0026d3507a27a8d3580b38a0
cypress-tags published an update today with some missing files.
This keeps us on the old version until they can fix their release.
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Ie7b2ec506cae4bc244a70b4502a85d3a7530954b
Changed the menu entries to conform to the new format used by
JSDialog menu since 07da50a.
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: I69109675ec69d66eb25ae128a6bb102e4628c705
Another test failing because of shape selection.
Select text directly and remove calls to shape selection helpers.
Unskip a testpoint.
Merge horizontal alignment testpoints (also vertical alignment testpoints).
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I729870d6cd43457d2297005f4c815fe29de39f42
Currently translated at 60.2% (288 of 478 strings)
Translated using Weblate (Japanese)
Currently translated at 55.4% (265 of 478 strings)
Translated using Weblate (Japanese)
Currently translated at 55.2% (264 of 478 strings)
Translated using Weblate (Japanese)
Currently translated at 55.0% (263 of 478 strings)
Translated using Weblate (Japanese)
Currently translated at 53.7% (257 of 478 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Japanese)
Currently translated at 88.0% (515 of 585 strings)
Translated using Weblate (Japanese)
Currently translated at 88.0% (515 of 585 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (22 of 22 strings)
Translated using Weblate (Japanese)
Currently translated at 68.1% (75 of 110 strings)
Translated using Weblate (Japanese)
Currently translated at 86.3% (19 of 22 strings)
Co-authored-by: Poe Mon <p.poemon.awitd@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-app/ja/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-lib/ja/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/ja/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/ja/
Translation: Collabora Online/Android app
Translation: Collabora Online/Android lib
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I6155250baf0d3f7ff2e54330cc9622a163ed177b
Currently translated at 100.0% (585 of 585 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (585 of 585 strings)
Co-authored-by: Sebastiaan Veld <sebastiaan.veld@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/nl/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I26404dbeefe0d28b080eb4dd9c480ef1a60ab9ff
Currently translated at 60.2% (288 of 478 strings)
Translated using Weblate (Japanese)
Currently translated at 55.2% (264 of 478 strings)
Translated using Weblate (Japanese)
Currently translated at 55.0% (263 of 478 strings)
Translated using Weblate (Japanese)
Currently translated at 53.7% (257 of 478 strings)
Translated using Weblate (Japanese)
Currently translated at 82.7% (484 of 585 strings)
Translated using Weblate (Japanese)
Currently translated at 38.0% (182 of 478 strings)
Translated using Weblate (Japanese)
Currently translated at 82.0% (480 of 585 strings)
Translated using Weblate (Japanese)
Currently translated at 78.9% (462 of 585 strings)
Co-authored-by: Shavazo <pleasure.7010@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/ja/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/ja/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I652016630fe632cb4815ce045596aabc4126b343
It is called when changes dark/light mode,
reset the fetch property to false.
Change-Id: Id8de5245d56405624ebe72b5655d37b52892f654
Signed-off-by: Henry Castro <hcastro@collabora.com>
Change visual indicator before request a preview.
Change-Id: I3a050ebc2aa2216af9508e01f56a5bf46756f5e1
Signed-off-by: Henry Castro <hcastro@collabora.com>
While zooming, things like the cursor move along with the zoom. The
headers instead stayed fixed until the zoom is complete. This is
inconsistent with panning, and worsens your experience when zooming
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I100de8f1fd62b831c285c9acab456260dbb77ead
net/NetUtil.cpp:65:23: error: no matching constructor for initialization of 'net::DNSCacheEntry'
queries.push_back(DNSCacheEntry(addressToCheck, hostEntry, now));
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Went wrong in commit 5be3ccc871 (cache DNS
results for 20 seconds, 2024-05-14), the rest of the code builds with
this toolchain.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Idc8ed4d88a7f955cf2cdc1e10ac9931823950126
Similarly to I1a2060d44d3b75935bf138056330a52d56a028ae, I have made
panning past the document edge create an offset too. This provides
similar benefits to the fluidity of scrolling at document edges.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I2eedf2449620c5c8fec9ebf71dbe23d5a643ad5c
Zooming always leads to same backwards and forwards, even when you have
hit the screen edge. At the edge of the screen, you can move no further,
which causes the illusion of it being "sticky" on the return journey.
By adding an offset when we reach the edge, we can avoid the stickiness.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I1a2060d44d3b75935bf138056330a52d56a028ae
Seems we have closed a number of the various races and problems
seen, and this can now be used.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ie3b0a1de847b9e77820d1135b4a8facdb7934707
We don't want to send these to coolwsd, they have confusingly
different Modified state from the bgsave process - which is now
unmodified after save.
Really we should filter out almost all messages from the
bgsave process and not forward them.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ifaea028f080e31705256a2d72cf4ab03dfd94187
Remove createSection from CanvasSectionContainer.
Use extended classes.
Move some of the sections to their own files.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: If80e86f55920f80d9fb1fddef49ac451ed744b7c
typically can be seen on a fast connection to a NextCloud instance
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie3431d58cb2499464e1bfac95dcf3b981536a7a2
It appears that both cypress and the C++ WOPI tests are extremely
timing sensitive, and fixing this should not hold up merging the
logging improvements. So for now don't disable logging in these modes.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I43e8397263e6960b668a29e7ad67f45394c52b52
Significantly calmer and less frenzied logging output.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I0f1782c0b8f10ac3427bac479ded2862f2b40b7a
Add logging.disabled_areas setting to coolwsd.xml with some sensible
things to ignore unless they are warnings/errors.
Kit code duplication around logging is grim; but not fixed in this
commit.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I36bebb2b3c8d64a814d7b10c167d582de0baf4e5
To avoid the HTTP[S] request racing the websocket and sometimes
loosing we need to:
* get a notification from the Kit when the copy / cut is complete
* wait on a Promise for this, to allow the HTTP fetch to start
* re-work to do a single, rather than two fetches by sharing
the download promise.
Change-Id: Ic23f7f817cc855ff08f25a2afefcd73d6fc3472b
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Probably went wrong in commit de985834e2
(wsd: simplify DocumentBroker construction, 2024-04-03).
Also init logging to avoid:
common/Log.cpp:664:16: runtime error: downcast of address 0x6070000005d0 which does not point to an object of type 'GenericLogger'
0x6070000005d0: note: object is of type 'Poco::Logger'
similar to how COOLWSD::innerInitialize() does it.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ic16bb2f070e1f0e12204bcc2fc70303d8c1250c8
Stabilize test by removing lots of extra shape selection
Stabilize "Apply highlight on selected text" by waiting before
color picker.
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I60e5e571be181bd6f43db1727854973aca446b99
If we had a tilecombine processed in the same queue and before
a save - the 'render tiles at the end' state would be inherited by
the background save process and result in excess work, and also
binary messages where only text messages are expected returning.
The rest of the queue is cleared post fork.
Add unit test - plus hook to hold queue processing.
Change-Id: Iee937897000bc3ac149599844f1eab005affb131
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
This should cleanup jails more quickly.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I2f7c7753614f0845a4d81d69334834047d661e41
Free CPU cycles for interactive processes.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I9d8cfe5f3541c9424d51c69380e1c72920154ff4
It is required to initial preview place holder,
otherwise, there are some cases that the server takes
time to serve preview_placeholder.svg and it may cause
an ugly effect.
Change-Id: I70ac46c8c464b64a09f091cdf5f8644d208a79d4
Signed-off-by: Henry Castro <hcastro@collabora.com>
Now we always send callbacks as soon as possible back to wsd from the
kit. This has several implications:
1. even when InputProcessing is disabled we will send outbound
progress updates.
2. we should send callbacks much more quickly without waiting for
other queue events to be processed eg. tilecombine:
We also drastically simplify storage of callbacks, avoiding lots of
re-parsing of the same strings, and allow much more efficient
comparison and merging at a small space cost in queue size.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ia1ede5406767f895616a52775316ee6ab1c5db09
safeRemoveDir is tries to unmount blindly, so there
is little point in erroring when the directory
in question isn't a mount-point at all.
Change-Id: I6db0fd9406493060ce52a69f7d935b0958e2d2be
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is already the default behavior. Writing it here just
makes it easier to change.
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Iebde47f5b64ae1509e7f37b884ad71fdc067b164
Test is failing because of an extra empty invalidation
when clicking between the body and the header
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I887c9bc028f2b831d205bba2944c734cafb1743d
Change the cell selection circle color in dark mode.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I23826bdf0a09fa7e8b1c25132842f98e37997034
Since f7491e1f62 all combobox started
having a with and min-width of 100px, this wasn't meant to be.
Restrict this width setting to .jsDialog.
Add 5 px left padding to combobox, this looks better.
Set the font combobox width to 5em instead of 50px.
Signed-off-by: Méven Car <meven.car@collabora.com>
Change-Id: I0f0247471376e4633f3bbffab89285e16f78cde9
Add CloseSession button.
Also improve spacing of elements.
Signed-off-by: Méven Car <meven.car@collabora.com>
Change-Id: I9999654f9d53d44016eeb0ea587cf3f61b000471
Doesn't hide the grid when the Function wizard is open anymore
when disabling the ToggleSheetGrid button.
Depends on https://gerrit.libreoffice.org/c/core/+/167370
This is a follow up for issue #8066.
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: I79ba99716eb1103e7239fe5cc302c64827c9ef53
also rename and dissolve the previously virtual _impl methods.
Change-Id: Id77a5c3ce79b27406301ef336ac1c9a40ead15bf
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
This is not common code, it's used only in the Kit.
Rename TileQueue -> KitQueue as well as unhelpful member variable naming.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: If158597f99f302cbc27e8eab139972f57a2fc3bb
Avoids unhelpful virtual methods which are not used anywhere, simplifies
several code-paths, improves readability, and perhaps performance.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I7528fab77698546545bf81d7ccacdda9a0002833
The MessageQueue is not a generic message queue, it has much more
un-anticipated functionality; so don't use it where we don't need to.
In particular unexpected re-writing and merging of messages
during tests is probably not a great idea.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I657738307e611be18f5f83e11c055bf8a88826da
So we front load at time of request as much work as possible when we are
basically idle rather than do it when the tiles arrive.
https://github.com/CollaboraOnline/online/issues/8744
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ief643f1e98cf4a853d56a68d82b48ff092e5a963
make the current uses that just pass the 1st argument explictly
set null for the 2nd arg and retain the orig lastRendered time
in that case.
This lastRendered gets overwritten by _tileReady after calling
_applyDelta.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I237d34e8d1fde94c95eb778c054e4ac5985c2a50
Sometimes an input we are focusing on is considered out of the viewport
by the browser. This is not always the case, and, even when it is, it's
not trivial to move it back in.
Instead, this change detects scrolling and re-scrolls the view to 0, 0.
Doing so is not without consequence, as there is a slight jitter before
we can scroll back, however this is substantially better than having the
controls off-the-page.
Signed-off-by: Skyler <skyler.grey@collabora.com>
Change-Id: Ie5003f9244ce1c0e8a183de5fdbcf3a880b13a13
It can be used to apply name to an object so it will
be presented in the navigator as something unique
Signed-off-by: NickWingate <nick.wingate@collabora.com>
Change-Id: Ica06259dc3007d638a4998ccc2cce03ad1a5ca05
instead of starting with sidebar and then removing it
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: If2ea433cd3d5fc18ad549bd3df095de15c126ad0
_applyDelta returns early if the initial "ensureContext" of the tile
fails.
i.e.
var ctx = this._ensureContext(tile);
if (!ctx) // out of canvas / texture memory.
return;
and ensureContext already calls ensureCanvas, so tile.canvas is
always true in the remainder of this function.
The "defer constructing the image & applying these deltas until the tile
is rendered via ensureCanvas." implied a sort of deliberate optimization
to wait until render time to apply the delta which doesn't actually
exist.
Also move the stray "// 'Uint8Array' delta" comment back to where it
originally came from as documentation of the type of the param, as in
commit 4140bf8741
Date: Sat Nov 6 11:11:13 2021 +0000
Bring back the delta application JS from the 6.4 branch.
...
_applyDelta: function(tile, delta) {
// 'Uint8Array' delta
...
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: If15a897c3251f28639c9f1112687e543421e457d
probably since merge of
commit 5140abd2c94b96f2a32f0f7416ae79239a2af187
Date: Fri May 3 14:14:26 2024 +0500
tdf#152906: use correct Y offset
or similar of that topic
change 3285 to 3286
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I4bd3509313c7a5801d5284eebc3882bf3550eed9
We need to mark core unmodified so we can track modifications
to the core that date from after the background save process is
forked.
We avoid telling WSD about our new modification status until
we are sure the background save completed successfully, and only
in the case that we have not been subsequently modified.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I2c9fbce942ff0af2bb727c3685f4ec479e18fa27
Force background saving in the config for this test.
Use stamp files to force sequencing between Unit test and Kit.
Change-Id: Ia2c60c3dcfdad87c9c9754e8f20a3c36dbcf74d5
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
It should always be visible when the function is called.
Rename the function to _setPreviewContainerTop for readability.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: Ib90da34574b0a5a44c9a2e7a2b2d64cdd2d59938
There is no need to add a visual break/divider between "Fullscreen
presentation" and the "Insert Slide" buttons:
1. They are visually very well distinctive so there seems to be not a
need for a division
2. There is not so much white space so the more we can reduce visually
the better
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I27b84782e5af987d9aec3734f7557c746a03667c
Was failing in moveCursor after slowdown introduced by
https://git.libreoffice.org/core/+/ca31493a
Rewrote test to use the same select helper as all the other
tests in the file
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I5197a095d47e727526636b232df1f3be45e5bb52
a problem since:
commit 04ac02b033
Date: Sun Sep 3 17:37:49 2023 +0300
Do not request tiles until we are sure a canonical id is set
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: If285a53c51b17a812a7387150f99f0f43486b9e3
Remove scrolling to get to toolbar buttons
Add test specifically for scrolling
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I885d3ec33c8d570dfad45893c5d267b7fe8cc0b9
- if deployment gets deleted than there is no where to migrate the
documents in such cases indirection will close the monitor connection
but we need to set the _migrateMsgReceived flag so that docBroker don't
wait for the message and continue to cleanup the document
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Ia2732740927ea16e368f91bea7421576a3cf2beb
- when COOLWSD get SIGTERM admin sends a "shutdown_received" message to
indirection server
- indirection server sends back migration messages for each document to
migrate it other available COOL server
- there is timeout associated with migration message if COOLWSD doesn't
get message we move on and close the document
- added a new option in coolwsd.xml to change the migration timeout
default is 180s
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Id7d5eea94d1b03ea5905ca67a9dd8f6ca15952f3
Making check in .
make[1]: Entering directory '/home/collabora/jenkins/workspace/github_online_master_debug_vs_co-24.04'
fatal: ref HEAD is not a symbolic ref
Cleaning up...
/bin/sh: ./coolwsd: No such file or directory
rm: cannot remove './coolwsd': No such file or directory
make[1]: *** [Makefile:7155: /home/collabora/jenkins/workspace/github_online_master_debug_vs_co-24.04/jails] Error 1
make[1]: *** Waiting for unfinished jobs....
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I31748354bb55f26a8a5b8475a4daa74b3ba5d729
When export is disabled or watermarks are enabled, presentation in readonly mode
is disabled.
This is checked in the frontend by the WOPI property `DisablePresentation`
that is synthesized in the wsd. Also check when calling the presentation
command.
WOPIFileInfo::getWatermarkText() is stubbed on mobile.
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: I4f7aff9f670f7523dfcf396f6009a272df9d5af8
Avoid the popup overlay and associated annoyance.
Also use a progress bar for loading in the normal overlay.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Icafdcc958d92f42cba44e3b213d6a0202566251a
We need to get more helpful structure into this message, and add a
type=bg flag to handle background progress messages.
Add unit test for merging progress: setvalue commands.
Simplify ProtocolHandler sendTextMessage with a std::string wrapper.
Android code needs manual testing.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I54ce807e2fc5de80118905e68557a95e637fbd18
- Inherit padding from #formulabar desktop, a single dimension instead
of placing different margins/padding across mobile
- Fix alignments
- Use css vars for buttons sizes
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I21110e43115576a212d29b1a55268fbeed6d52af
- Remove individual sizes
- Rely on the same single size digit that comes from the parent
container
- AutomSum button should not inherit buttons height
- Fix jumping buttons: Cancelformula (close btn) should be placed
exactly where equal ("=") was before
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I6c5a40709051ace3313195f4491798429eb5f6a0
Before this commit the buttons would jump position between default
button group and cell edit mode button group (when acceptformula and
cancelformula buttons appear)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I5411f145a9f4f4d2dd10a4278105447a52755815
Better to rely on grid gap or somesuch
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I50e59d1b3464687a0bba76bf54a0ed2412dc3758
Make code more deterministic by removing old hacks with
timeout and cursor detection from:
- 6037d52
- b62320c
Bug was that on desktop when we were in formula edit mode
and we clicked cancel button - it was not showing again
the regular buttons but instead it was showing the
accept/cancel buttons.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I1a51920e99f4902c1dbb62b0eab6e4f2edc932ce
this is shown after commit cf0a6f4
jsdialog: add "linkbutton" as an independent widget
it wasn't there before
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ibdf8a9eb7f226740c11e8a34c16c7be4177576e6
a normal case, where user#2 joins the document successfully and then
their connection closes; where the remaining client gets the
notification that there is only one client in the session.
an abnormal case, failing test currently disabled, where user#2 joins
the document, "load url" is launched, but the connection is immediately
dropped; the other client gets a notification that a user has joined to
make it a 2 user session, but no notification that the user has dropped.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I8271fb3d4def917acdff0fae6a3a52b5d02ef7af
They should be cheap memory wise, and save quite a bit of latency.
Keep 1 for debug mode - to make attaching to the right process easier.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I230be6ae61874f36b47ffc93d888d455bea3a7d8
To make consistent all toolbar element height with prev version where we were using w2Ui lib
- i have added height to table-row element same as we had in prev version
- remove fix height for toolbar-up which is not needed now
- this fix height will effect the bg-color in toolbar-up section
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I7b307a6a72968ed81fe2eb8663c430f11e3b3ced
Pedro :
This changes from flex to grid (so we can have multiple columns and 2 rows)
Darshan:
- adding one more div and wrap all child of toolbar-wrapper execpt 'formulabr' will work here
- i have tested the css grid approch it is breaking the mobile UI in Calc
- here i have changed a bit in html and twiked css which covers all cases
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia50fda95e2bef57d707bb4be1dd34e2ec083bfc5
With "Change table layout to CSS base table structure" and "Adjust
table elements for mobile view." changes we now have more divs instead
of table elements but with that the hamburger menu is now mislaigned
- Fix height
- To do: ideally we would make both hamburger menu and the button
at its side rendered with the exact same structure which is not the
case. And ultimately remove height and just have it flex stretch etc
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id9365df82f1caff132dde41760a06689ec1145d1
No need to specifically set width and height for .menuwizard-opened
state. Best to set only one time those dimensions and just inherit
from #toolbar-hamburger no matter the additional css class
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I51eafc6c9b05b843d800b40a990aefd912e463f8
- we changed table structure of `toolbar-wrapper` with `div`
- so we also need to consider mobile view
- made some neccessary changes for mobileview because of structure change in cool.html.m4 ('toolbar-wrapper')
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I91cd2c3ffbb0d625a78852398f6773136e9a7f6b
- For the editor in the home view, a layout table is used, and it includes the use of IDs. This can
potentially lead to issues with the interpretation of content by assistive technologies
- Layout tables are
meant to structure the layout of a page and should not contain structural markup like th , caption ,
summary , headers , or id.
Solution:
- replace `td` and 'table' tag with `div`
- make some changes on css to be consistent with our prev design
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I136cd8d51b2e5035c6ef4292f759f49519e5bd61
The _onScroll request the visible previews.
..
Change-Id: Ib5370f1790b489edb4626a22bf6c5bb1cd8d0f17
Signed-off-by: Henry Castro <hcastro@collabora.com>
It only initialize the initial preview width and height,
the _onScroll function will request the visible previews.
Change-Id: I7e04ea93f85a9270d09b241dc14391be214080a4
Signed-off-by: Henry Castro <hcastro@collabora.com>
This depends on the core change, which separates the linkbutton
widget from fixedtext widget as it is already an independent widget
in "weld" and used in accessibility checker. Adds "clicked" event
that is triggered when the text is clicked and send to the core.
Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: I4a999f3e57aaa7950482c55defa3012346351cb1
Enables the accessibility checker sidebar, changes the icons from
the old name to the new name (as it depends on the UNO name) and
adds the UNO command to enable the sidebar.
Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: If9aeb375ec87ef27d4dead5f3148bc40f01db976
- Non-edit mode does not intialized after server reconnection
- this patch will fix initializedUI after reconnection
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I43405067287dd3f7f134fc9dcabfdcae183724ce
Wait for table select to fix copy/paste issue
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I5d564c062f5c8f5616997cd49222d39f47baa260
as well as current ones.
i.e.
/// User Info container used to store user information
/// till the end of process lifecycle - including
/// after any child session goes away
so add some info in the log to flag which ones are still connected and
which ones are not.
https: //github.com/CollaboraOnline/online/issues/8943
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I5350c04d1a7bb8095464881fba97e5910f71ffb3
problem:
when try to edit any cell for the first time,
there was console error due to undefined variable
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I8a29ad6e0e6243cc55175be0173eceb80bfea877
- according to previous change(commit) we need to adjust ID in cypress test files
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ic5510392b101ff7c7daa28719a60963c7bb2c743
- Because we have appended '-input' to add ui-edit-control in jsDialog builder filer
- now we do not need any id/string which have '-input' at very end of that element
- for some cases we need correct GetElement by ID in js files
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Id9b4f53e8deaa2f26c6abc93dc80504895107bd0
- To unify editControl, added additional "parent" for edit's input
- this will be consistent with other input type controls
- and will help to establish link between lable and input[type='edit']
- changed parameter from input to it's input container which will help to pass correct ID to Core
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: If5ab78bdf3d3ad61438898f5e4cacc19bd2ecb63
in 24.04 more elements are grid now, it seems to be a
regression in button box:
1. enable macro execution in coolwsd.xml
2. open spreadsheet with macro
Result: you see the dialog with buttons in 2 rows
Expected: all buttons are in the same row
it seems to be missing grid placement for left and right sections
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic1a3479114e4f832e852b9bdf3d39d2669ae69bb
problem:
when user selected disable macro in the opening dialog
document used to close and return to integrator
but now cancel button in csv import dialog is hidden,
so no need to distinguish there and we can continue to load without macros
In addition we still close the file if user clicks "X" button on title bar
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ie0c7d77954e099cb3c8a72c400c688b3ae1343c7
Previously when there was a frozen pane we calculated an incorrect
size on the unfrozen pane, leading to slight blank edges when you were
mid-zoom-out.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Id26f6ba815429addd0cdf3af37f5c54363a08b2b
Previously when panning with zoom, the freeze shadow would stay in its
initial state (either hidden or shown) whether or not it should actually
be shown at the current position.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ic0d05c1204b1e15abbb6d8ad34235206fdc7740c
Previously the freeze shadow would stay where it was, creating a hard
edge and confusion about where was frozen. With this change, the freeze
shadow moves with the zoom.
This change needs a followup to show/hide the shadow when we reach/move
away from the document edge.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I8bec41be6ce5eff3c1bfd3ac0234b6d53833614b
- Fix alignment between rows by:
- Setting some of the columns' width
- Removing margin from all buttons & set width. Add column gap
- Fix vertical alignment
- Fix header alignment (Name, Type, Value) so it aligns to the content
- Make "Add property" occupy full width (ideally this button would be
part of the inner grid "last row" but for now this is already an
improvement)
- Remove lengthly css targets and the use of nth-child
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I85d9bdbcc365c735757ee086f6e4912d694a011c
coolforkit: common/Log.cpp:677: void Log::shutdown(): Assertion
`ThreadLocalBufferCount <= 1 && "Unstopped threads may have unflushed
buffered log entries"' failed.
Was caused by mis-accounting. Also join document threads on 'exit'
which happens during unit tests to ensure we don't hit the above.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I523e723e54e4252ae0d65de36af086e97dd79f04
Otherwise forkit tends to loop aggressively re-starting that for the
duration of the test wastefully.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ia1c684a5d995f54f29290c9631b1ee14266445d7
Simple example to re-instate previous unit test.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I26da1178bc897797a656eb5ae9f838d17cbaf75f
This added 200+ lines of code, made things harder to
understand, and was used only in a single test that can be
covered in another way.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I4ed8d1d52d533f8b24be7dd5e12dbb7702ef1a80
It sets a reply's status to "resolved" only if its parent is resolved.
I can't remember why we implemented this like this before.
But now, we don't need to.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: Ia31dab0237d3b89e5d391cf87394514d18b595f7
Copy an image to the clipboard, click Paste -> Paste special on the
notebookbar in Firefox: the image is pasted, but the paste special
dialog doesn't close.
What happens here is that Firefox lacks navigator.clipboard.read(), so
the relevant code is Clipboard.js dataTransferToDocumentFallback(), not
the new _navigatorClipboardGetTypeCallback(). Here e.g. copy from
desktop Writer (html+text) would lead to a _doInternalPaste(), which
would call _checkAndDisablePasteSpecial() for us, but the image case
returns early, so the closing doesn't happen.
Fix the problem by explicitly calling _checkAndDisablePasteSpecial()
before returning early. In contrast with the other uses of
_checkAndDisablePasteSpecial(), we don't need to call the paste or paste
special uno command (since _asyncReadPasteImage() takes care of pasting
with a websocket comment), so it's fine to ignore the return value.
No testcase, our cypress tests run on Chrome, and this happens only with
Firefox.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I751d234edfdf9e8fb37f2bf2d6b3f3d8e65a27f4
Some tests are designed to exercise the reconnection
logic. Once the test validates that the correct
reconnection logic is used, the test is considered
finished. In those cases, we need to break the
test framework's retry logic.
Change-Id: Ie0bb5dcc430a954910c2af4817a500f5b576bd4c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
It's only relevant for regular URLs that contain version hash.
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I73afaa0559c3dddc09a8ed5f786fb5126e1c8f0c
Failed because mobile wizard opened too soon.
Fix: Wait for selection before opening mobile wizard.
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Ie29e3f5be17bafa2dd09b3f8f5b6415104456cb7
Most users of selectTextOfShape also need to select all text.
Sometimes the cursor appears but does not allow CTRL+a to select
all text. Work around this by including the selection in the retry
using waitUntil.
Fixes mobile/impress/apply_paragraph_props_text_spec.js, which started
failing sporadically after commit e0a0646ce1.
I also adjusted the dblclick selector because it was finding multiple
elements but I think that is unrelated
I also created a separate function editTextInShape, for tests
that do not need to select all text
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Icdfa731ba9a5f8d08a858192a4f1f5bc79b09b76
insert shape now shows all the items in one column.
fix it so we have rows
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I371f7fa233e46a62dbb6637d934bc5ceb5cdecb0
problem:
when you try to reply to long comment, it would be resized
and subsequntly reply box will take space and other comments
will not make enough space for it
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I4d81904721e5bb196947598d0dca211ee9d480a6
problem:
when comment was on the edge of the document/screen(vertically)
resize was called which ultimately collapsed the comments in small screen
which could not be expanded unless scrolled further from edge.
It was more problematic for the threads,
if entire thread could not fit in the screen it was always failing to expand
regression from bac4161
it nullifies the effect from 81b00e7
now if comment is added at the end of the document and it goes beyond doc boundry
doc will not scroll automatically to make entire comment visible
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I198b4887ae19ca0c17ba1453960cd36a66beb04d
problem:
when long thread did not fit on screen and actions were performed
on last comments of thread which put root comment out of view,
it will cause scroll back to root comment (i.e: reply)
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I23d699425dc2dff1cfeddf6ab9be7131f80c3a31
select function now can take care of reselection and layout update
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I2a061643ec190d5b2d005b940923a28131ed6cb0
which may kick in at an arbitrary point. We shouldn't invalidate if
there is no change, but that's a TODO.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I910c96f2c2a0efab393ccea52c9f25d5804cd967
This is not part of CI at the moment, so I didn't notice it till Szymon
pointed it out.
make -C cypress_test check-idle spec=calc/idle_spec.js
passes with this, which is the only suite in 'make check-idle'.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ieeb15653abcc016bc7de87115df136dfe3f27d0d
Copy an image in Firefox, paste in Chrome with the Paste button or with
Ctrl-V. Nothing happens in Calc, Writer gives you a popup to copy the
image, which is already the case.
What happens is that Clipboard.js already had some code to guess when
the HTML only contains an image, but while Chrome puts '<img ...' to the
clipboard, Firefox puts '<meta ...><img ...', so we don't recognize the
content as image.
Fix the problem by adding a new isHtmlImage() function to Clipboard.js
that handles both markups and use it from both places that deal with
paste (Paste button, keyboard).
Note that this manual parsing is needed, because the input is user
provided, so DOMParser or innerHTML would not be safe.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ia1340cd3777c5597e3fd257e905e9cc637802bcc
New helpers setupDocument, loadDocument, reloadDocument
Clean up beforeEach functions
Replace most calls to beforeAll with setupAndLoadDocument
Replace calls to reload with reloadDocument
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I12307f93c8a418e6f55bb36b8afe340d7841b726
Replace beforeAll in most tests with new helper function
Tests that need to close or reopen test files cannot use
the new function and will be updated later
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I372280e55993123fc26f83cb2e6e6e78665a6846
Cypress recommends NOT cleaning up after tests
https://docs.cypress.io/guides/references/best-practices#Using-after-Or-afterEach-Hooks
Open documents should not affect other tests
Files will be closed automatically by the server anyways
Tests with more strict requirements can explicitly close
documents before, during, or after those tests
This is necessary to support beforeAll cleanup
Half of tests were verifying the wrong filename was closed anyways
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Iab458963a3fbfe87f732dc97140704c2d0ef53d4
Previously using the onscreen keyboard would shrink the visual viewport
while leaving the elements at the same size, meaning some of the content
had to be offscreen. As we scrolled the page to have the cursor in view,
this would move the notebook bar offscreen.
To avoid the possibility of the cursor leaving the screen or the bottom
toolbar being offscren, we can use the VisualViewport API to force the
logical viewport to have the same size as the visual one
This won't have an effect in iframes as the logical and visual viewport
in iframes are always the same, and we already scale to 100% height by
default anyway
Signed-off-by: Skyler <skyler.grey@collabora.com>
Change-Id: I07726bee8b61334f6a32e873ab2d5428fa60dca3
Hidden contentNodes (in annotation) may become visible during resize.
Looks like setting style.max-height also change style.display.
Now i set it only if style.display is not none.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: I30f2eb75cb3ccb5b43044cef856314b0e35b9300
Make comments window bigger, if needed, and possible.
Selected commits grow up to MAX size, even if there is no space for it.
There is 2 constant limitation:
MAX - --annotation-max-size this is the maximum size commentText window
can grow. If the comment have more text, than it will have scrollbar.
MIN - --annotation-min-size if there is not enought space, but comment
have more text, this is the minimum size of commentText window.
note: commentText window can be smaller then MIN, if it has less text.
During doLayout:
first, in resetCommentsSize comments size resets to default.
(max-height = MIN size.)
after comments positioned with loopUp / loopDown,
resizeComments check all comments (maybe it could be optimized)
If a comment have more text as its actual size, then
it check the space between this, and next comment..
and resize this comment.
If there is not enought space after the comment, then
it check for more space between this, and previous comment, and
resize + move up the comment as much as needed.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: Ie7b0971febd8c965b01ebe23125eac4eded1a742
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
We see multiple tooltip problem on drawing area widgets.
Example case:
Add basic shape into a writer document
Right click on shape and open Position and Size dialog
Select the Rotation tab
Hold the rotation angle widget and drag around itself
When you inspect the "Rotation Angle" tooltip, count may be 600
We expect only 1.
So we prevent to show another tooltip if we have already one.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I2f548f8c7afce8095e83a6faa3722e164f990210
Replace dropdownmarker with an instance of HTMLObjectSection, which doesn't use lat/lng.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I152ed3ea4120c0682d057b2beedd4e5d8910da17
Centralize more logging functionality in Log.cpp, simplify and
wrap underlying logging APIs better.
Code is much more generic, and hides implementation details
much more thoroughly, while keeping the same API / wrappers.
To do this we have to sub-class Poco::Logger to get access to
its generic 'log' method instead of a mess of in-line wrappers,
this lets us avoid lots of code.
Change-Id: I541d3aef49f99ce582655c5102a0041bf84cd56a
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
it is not used anymore: see commits with remove-w2ui prefix
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ifc0034dcb28455204e490d0d21e97af22d3c8ae8
And add self made ui-scroll-reight/left items with
primary color tiangle. We should replace it at some
point with something more pretty.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I67530c6352b8356214399f324b55bbf9bc24f876
There is a race here, clearly if you type while a background
save is ongoing - but this is far better than leaving the
document apparently unmodified.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ie5e3e692294e48ad887481af2e0906092830f265
This was just a workaround to keep tests working till they are fixed to
not assume we do an implicit 'copy' as soon as we have a text selection.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I37d16ee2841c41593a5af2fb6ceba025fe1c79e0
this returns the same type as its 3rd arg, so using "false" returns
a const char* and not a bool
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ibd46ecea82ef4587e1a2083430981976457ab874
Similar like in:
commit d9d13d7092
wasm: support serving wasm files
add headers required when we use WASM so we are able to
embed presentation in window.
Without that we get:
not-set Cross-Origin-Embedder-Policy
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I03ca3717488a92fe405693764f3f18a964b23bf7
SavedUIState is a ui_defaults option to ignore any user preferences for
state when loading, it was added in
https://github.com/CollaboraOnline/online/pull/7575
We need to set SavedUIState explicitly on mobile, which the following
pulls do for iOS and Android respectively:
- https://github.com/CollaboraOnline/online/pull/7908
- https://github.com/CollaboraOnline/online/pull/7912
Unfortunately, setting it to false can cause some nasty bugs, such as
inability to change theme to light. It also intentionally ignores user
preferences when you reopen a document, but this isn't particularly
desirable on mobile.
I believe it to be an oversight that the option was set to `false`
rather than `true`, as `true` was the behavior before the ui_default
option was added and neither change gives a reason for it to be false
rather than true.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I30ce445db1b7e69a3b44eec3fb4689c463233b1f
- we need to also consider `th` tag to make it display none
- it's a empty text span so do not that extra space.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ib83d42f64a0115fdc4d17a8f7e952419a84cc9d5
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I359fa602523052940879ce749624ee63086554c1
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: If9371a3d235a0ee6c006be72dabe40242fa46b2b
now reply count node multipurpose, it also indicates
if a comment which was being edited is collapsed
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I18a676885deea0afa30eb20505a76239e11c5493
problem:
when in small window, comment was autosaved,
it wasn't collapsed but would hang on the edge of the screen half visible.
We can't collapse the comment directly as user will not be able to find again
which comment was being edited.
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I9393e7f2b53d8ea37273cc2290cc74636c514cb5
Remove _cellCursor and use app.calc.cellCursorRectangle -> SimpleRectangle.
Turn _prevCellCursor,_cellCursorOnPgUp, _cellCursorOnPgDn into SimpleRectangle.
Remove horizontalDirection and verticalDirection calculations. They are not used. Also remove them from _onUpdateCellCursor function.
Use app.calc.cellCursorVisible instead of empty rectangle checks.
Set variables to null to re-init them instead of assigning them empty rectangles.
Push lat/lng usage through markers (leaflet things).
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I4b258a72f1ac3c94ccf25a07d0e7dab232165b90
- it's not user friendly to just see color code with a radio button.
- this patch will show color image preview for filter by color options according to the color code
- it will applied only for dialogs with filter using color codes in `Autofilter`
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ifc67a2692df5c9b5c332c8a15d5ad92cde4f4bf8
Before this commit, in both cases we were not using tooltip
method (which is used everywhere) thus, resulting in inconsistent
tooltip styles, sizes and no animation (these ones were just native
browser tooltips)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If7f6213f507f5c439ceaaeb1c713c7680cf563d5
Before this commit buttons such as bold (in the notebookbar) or
sidebar button (in the top toolbar) would not change the cursor on hover
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ief075b4f4d187f6a5d87458d02077c0deaf69fe6
The code is old and it is not used anymore by
new changes did it.
..
Change-Id: Id163cba7f586e3a083bff4cbb169a5d16e4b0cce
Signed-off-by: Henry Castro <hcastro@collabora.com>
In all WOPI cases this is overridden by CheckFileInfo etc. but for
legacy direct file:/// usage this state can still be seen from
unit tests it seems.
cf. commit 115b9cf2ab
dump_state() output:
Document broker sessions [1]
id: 001
name: ToClient-001
...
isWritable: false
isReadOnly: false
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I19792b1dfdb6f5126a4d119a4d001a06bc507fb7
Presumably originally introduced to protect the static FileDeleter,
which has internal protection of its own now; cf. commit
1ae9ce8ad2
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Id3266d7f08a9f7bd620df49850242a250fc73903
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I01a3ac4e843c69f6e91f650f33b8066161e73e68
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I302edb920801895f1a728313b5e9a9405ec7d396
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ic4a57aede4f0bca397868a80303df8d124e31ba4
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I7cfe6a9245f0397a580cd4375836ff042a5751db
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I7490be48e86f73d36e98cbea76b10f98d87aeede
Otherwise we go on doing work that the parent kit process should do eg.
[ kitbgsv_006_002 ] TRC ToMaster-8f9: saveDocumentBackground returns succesful start.| kit/ChildSession.cpp:887
[ kitbgsv_006_002 ] TRC Calling paintPartTile(0x4c0716f0)| common/RenderTiles.hpp:130
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I257f61d05d8a0da0c8eb9d8c60e502da66dc8cdd
- We allow the slide menu and the few presentation commands
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: If2533450a3b2af365a89f780dca32daf87c0758a
Currently translated at 53.1% (254 of 478 strings)
Translated using Weblate (Hebrew)
Currently translated at 52.9% (253 of 478 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (585 of 585 strings)
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/he/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/he/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I45cf1906cca418011e62178e2d6064949707c63b
problem:
if comment thread is very long and some action is
performed to the last comments which puts root comment out of view,
entering modify or reply mode will make scroll to root comment.
This makes editing comment/reply go out of view
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I99f8df6886a69242b3db92674516678a61d2904f
- Make the Insert tab : insert annotation in similar place between
apps
- Use the same accesskey (accessibility, shortcut) in between apps and
the same as the one used inside of Home tab
- Writer: Insert tab
- Insert annotation: Add missing DE accesskey
- Insert remotelink: Add missing accesskey
- Make both insert tabs more compact by making sure hyperlink and
remotelink stacked on both apps
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Icb8c512d437a8c328e6acf2cc41fc335d660af26
- Promote to big button
- Use the same from the previous position to make the whole tab more
- compact by changing the insert image to a simple toolitem
- Change location in the home tab so it's easier to reach and it's
more consistent between writer and impress
- Use the same accesskey (accessibility, aka shortcut) between both apps
Cypress top_toolbar_spec.js needed to be updated to make sure scroll
indicator do not cover when attempting to access it
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I0b3f3b83772317263c9d5d3d0e7f35d831eaa1ed
In 79028c6f88 I replaced an instance of
using this.map._docLayer._viewId as if the user is not in the document
this becomes your own view ID and shows the wrong avatar. Unfortunately
I missed CommentListSection which has the same code.
As we already have a viewId fetched a little later down, I opted to use
it rather than get another myself
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ieda06e03902effe9be8fef3623b73d3caeef6f65
Trying to paste from the notebookbar in a setup which is not localhost
but uses http resulted in a JS exception:
> Clipboard.js:863 Uncaught TypeError: Cannot read properties of undefined (reading 'read')
We assumed that navigator.clipboard is always defined, but then its
'read' and 'write' properties may be undefined.
Fix the problem by abstracting this, and check for navigator.clipboard
as well in global.js.
Can be tested by disabling https in coolwsd.xml and changing localhost
to the real local IP in the make run URL.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I1dab14e311066fa640dbba65dfcc35526a6886d7
Fixes for several sporadic issues, each uncovering the next
Sidebar was not getting hidden because the button was pressed too soon
- Wait for sidebar to show before hiding it
Comment text area was disabled
- Wait for disabled attribute to go away
Second half of comment text was getting sent to document instead of comment
- Wait after typing in document before inserting comment
Also add wrapper describe block to share setup/teardown
- Fixes copy/paste errors in one block, which was missing
calls to selectZoomLevel and setActiveFrame
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I13ef1189cfacc4beac0b2c3363c70aa1e8583db3
Replace helper.clickOnIdle(selector) with cy.cGet(selector).click()
Replace helper.inputOnIdle(selector,text) with
helper.typeIntoInputField(selector,text)
Also replaced waits before clicks with a disabled check
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I2db36737e61271285cd474c1ffd549d285286133
Previously the following issues were present when columns were frozen
- The frozen column was allowed to move, this was exacurbated when I
made it easier to move in my 'calc: pinch-zoom:' commits,
(3ba8257c64 to
b378a0fd77). This is now fixed
- A regression was also introduced in that range where the selected cell
marker would become offset if you placed it in a frozen section then
pinched to zoom. This is also fixed
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I07f70a32e5cb68aeb759fd6cad626b2d4c0eed72
need to include some typical headers to get it to issue a failure
diagnostic
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I37d6e0f342698507952a8006b88d56e55060270e
problem:
if calc->view tab-> dark theme button is clicked,
if button is clicked from icon it works fine,
but if button is clicked on label event is triggered twice,
which means theme would be restored to first
reproducible only in firefox
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ie645df86651a7507582de44147885a2b62384ddb
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I640d913d7ed5069c002b0a9376b6208ac42908a2
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I62b809a1326c0516120076acd2dbaca8469a11bc
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I8ba49faa7eb5926993111d03a961f750174d3bea
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I8cc3d77a42d66c80882e44f5cd09ac88f53dfa9c
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I74f253bb7df509c731a6b3bb22a077e1142e4580
problem:
could not insert more than one comment in calc
regression from fcb6367
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I30b52569a48d5f1d0bb2a3fe9f6f6e7c6bd43c80
can be disabled with --disable-hardening-flags, defaults on except
for wasm and sanitizer cases
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Id3ccb7492b73dfa6c7bbd5dd0419927032fc9bdf
Get the polarity of the check on whether we succeeded to spawn a
background save process right, so we don't spawn two saves
concurrently, and block input processing in the wrong place.
Also a few obvious sillies fixed, and some more assertions for
good measure; was not good:
[ kitbgsv_001_001 ] TRC ToMaster-002: Finished synchronous background saving ...| kit/ChildSession.cpp:882
[ kitbgsv_001_001 ] TRC ToMaster-002: saveDocumentBackground returns succesful start.| kit/ChildSession.cpp:887
[ kitbgsv_001_001 ] TRC Document - input processing now: disabled was enabled| kit/Kit.cpp:2095
[ kitbgsv_001_001 ] TRC ToMaster-002: uno command .uno:Save {... notify: true| kit/ChildSession.cpp:1944
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ie06a74a538bdd5038ca9c94b422f27cff9e4a82e
Somehow this state can get confused in a bgsave process:
Kit Document:
...
inputProcessingEnabled: false
...
SocketPoll:
Poll [kit] with 1 socket - wakeup rfd: 39 wfd: 45
fd events rbuffered wbuffered rtotal wtotal
52 0x1 process 0 0 r: 825
'process' should read 'ignore' for disabled input.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I787eebe6fda3ae1b527d7605b8813fa764e81890
- Hide `Set outline format` uno button
- we will add this option again after fixing the dialog issue on mobile view for Outline option in `Bullets and numbering`
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I270b78b7b9f00fd7b0f12c348794e3d3da3e653e
a problem since:
commit 72b2ce4bb6
Author: Caolán McNamara <caolan.mcnamara@collabora.com>
Date: Wed Oct 25 19:19:08 2023 +0100
we don't need to round-trip through core to reposition notes
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: If00ae17a8e80ca3f8d2a530efa6cdba90207be56
When the last connection is closed, we flag the
document for unloading, until we save and
unload and have nothing further to do. However,
if during that time a new client joins the
document, we reset the unloading state and
recover.
A previously failing and disabled test is now
re-enabled and passes.
Change-Id: I425a9286ec5df56064132e5e4227227761c65830
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Fix getViewRectangles function - it's used now.
Remove "_cellCursor" usage from CalcTileLayer.
Modify tests for the new changes.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: Ia5ec5a6e89d7d64df2041112936a16ec06c4da93
Add CellCursorSection - not used yet.
Start using app.canvasSize variable.
Use simpleRectangle more.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I2cd4e23897c918679a0a385e1ca2d04117fd71c6
It seems we've had input processing turned off more than expected
recently, if we have an event or callback in the queue, it seems
we set our timeout to zero.
Since we would not be processing input this would never change,
and we would just busy spin indefinitely; just lots of:
[ kitbgsv_001_001 ] TRC ppoll start, timeoutMicroS: 0 size 1| net/Socket.cpp:404
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ib374c6ce12d467eba602c7eaee99cc3940ffe681
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I6d8f5429fafa77cc4e3019878c0791555225abd0
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Id6e1e2099273d22f9ae9718e18c70afbc27e64e7
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I72fca080c13b4d0954ba3fff67faaa6a4927ba3e
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ie60c7a27d88a47f00c9b793a48d4c8e533ac32d2
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: If5ecd80c5b16f8f5f3f1154de6d42ca0cd803773
problem:
in LOK/online to support async save, files in jails may have
different extensions (ie: .upload, .uploading)
this caused problem to detect files as original file name may not exist.
As result property like file size were always set to 0
chronology of events:
1. File is saved normally with existing name
2. After saved we make it ready for upload and add extension .upload in "renameForUpload"(kit/ChildSession.cpp)
3 We change to .uploading extension when we are uploading (DocumentBroker::handleSaveResponse, DocumentBroker::uploadAfterLoadingTemplate)
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ibda40b0c134ef6baef9edb0427b3c56340924858
with cbf452b03d drop
indicator was not shown if the cursor is over the <div> elements
that inside the tabs
- fix by using e.currentTarget instead of e.target
and do some checks while on _handleDragLeave
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: Iec8e246f18e553487b0eb0d9264cff8bb37b6305
Statusbar items which are not active previously were grey.
Recover that styling and do cleanup to not specify CSS in the
JS code.
We use that only for items which are active/inactive - not
for just labels
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic5beb7b2fa398d594cfa035d4cbcfe6f40cae787
problem:
in writer when comment is added at the end of document,
it may go out of view and covered by the status bar and can't scroll any further
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ia40ea128cd36a904ee5030bb7399da183e21f44d
but impress/draw should continue to use the existing document
preference. Writer and Calc have spell as a pre-view feature, while
impress/draw still has it per document.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ieb8c307b13f2ee010e09058a1ba63c7808637487
In e855aa6114 a regression was introduced
where a comment avatar was set to your avatar if the user was not in the
document
This commit returns it to the previous behavior, which had a "default"
avatar instead. It might instead be nice to embed avatars in the
document to avoid the avatars being missing, however the previous
behavior is far less confusing than the regressed behavior and is far
easier to get to than embedding avatars in the document
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I82834089062b1e7c2570d9fd78c7e1a3077f4c96
- it might happen viewinfo message arrives before status message,
viewinfo message update view list with old _viewId because new _viewId
after reconnection is not avaialable yet
- this patch fixes this by reseting the _viewId on socket close and call
updateviewlist event after client gets new _viewId from status message
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I88a6ade574faa1368b1635db891fe87f89fa080e
- also might fix the duplicate user on reconnect
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Id302d79dd664d2e4efd6b4ba49972b3634b19569
Query included the header of the table, which was then
printed in the logs including lots of whitespace noise
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I361f60c9b42972f580ccb10986dd4b3b9400ca0c
The bug referenced has been fixed for a long time
so the workaround is no longer necessary
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Ifac6555c711a0f142dd5d00ba4f4133dd4aece9f
In PR https://github.com/CollaboraOnline/online/pull/8700
We renamed some variables and removed usages of cellCursorXY.
One was forgotten and causing null ptr reference.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I840cc711076e4473dee8b6a1b823a362e0eecd84
In certain scenarios, such as with Proxy.php,
we don't have CheckFileInfo in advance and
need to request it before proceeding further.
This adds a wrapper to wait for the
CheckFileInfo request to complete.
Change-Id: I8afa955f841899eb667c02168a29a68c1dffb21b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
To work even if we don't automatically fetch HTML when a text selection
is created. This was the first mobile suite that needed fixing.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Iad772d878d20d76bcf3770b7acc6abafa74859b2
To work even if we don't automatically fetch HTML when a text selection
is created. This was the last desktop suite that needed fixing.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I428153c89c9ff46dc41541713c13fe19455e0c14
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I7d2f870d7c694ca7305477c614c3ddb698e0c501
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I80c8534b456ec5930a79d8339b297905bb5ba2de
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I5e6d435fc9322fd5478d78f8e9ba0ef525b6c5cd
Hard closing without shutdown is necessary, but we continued to poll
and read on an fd that would be re-used to open eg. a ZIP file:
[ kitbgsv_007_001 ] TRC #19: Incoming WebSocket data of 13522 bytes: 50 4B 03 04 14 00 00 08 00 00 29 9C 90 58 33 26 AC A8 2F 00 00 00 2F 00 00 00 08 00 00 00 6D 69 | PK........)..X3&../.../.......m"
...
[ kitbgsv_007_001 ] ERR #19: An unfragmented message or the first fragment of a fragmented message must have the opcode different than 0| net/WebSocketHandler.hpp:452
which would then close the file unhelpfully.
Not removing the socketHandler when cleaning up means that
we trigger the ForKit's ServerWSHandler::onDisconnect which
SigUtil::setTerminationFlag() causing all 2nd kit processes
to expire on start.
We also want to ensure that we update the thread-id of the last
forkit process before we start removing sockets and checking
thread-ids.
We want to get rid of the parent process' sockets we inherited
but don't need very cleanly post fork.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I82966f4421fc96df552fd50cf81c8b0bc92b9bbb
Ensure all preview tiles array is equal length of preview queue
to be processed.
Change-Id: I37a8109a1d02d7dd761c9fbd36a7d0aa8102f7c3
Signed-off-by: Henry Castro <hcastro@collabora.com>
The function '_processPreviewQueue' it request only
visible preview parts, it was an old code that it
needs to be updated.
Change-Id: I56519c328fb3bec70ca1fce2730f5146dc254fa5
Signed-off-by: Henry Castro <hcastro@collabora.com>
If wopi.UserCanWrite tells us we can't write the file no reason to show the edit button
that would do nothing anyway.
Fix https://github.com/CollaboraOnline/online/issues/8686
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: I4f6d1f8d8be520e422e260f2e532cb86541e8d0f
Potentially zombie / badly behaving kits should be taken down
by the kernel, and this lets us continue our cleanup by killing
just the parent process.
Change-Id: I1e81f41cded0c67b72622f8ed88602daf427238c
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
which is more efficient than repeatedly erasing in a vector.
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Change-Id: Iebd41130b37a67ffd74fa2d692b83220b1cab3f4
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ib53e71546cc1965f4a1073d507b07caef086c628
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I6148fdbdff6390c20e454ed9f26c6e55e774cc69
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I3562d90ff20963bb77afebb8ea7430586f0b6bbd
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Idb62d8496f8ff9503654ecea1747f097463afb1b
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ic499b60dde450b32464dc2b8cd959066ac5c2e7e
error is:
1) Joining a document should not trigger an invalidation
Join after document save and modify:
CypressError: Timed out retrying after 10050ms: `cy.click()` failed because this element:
`<div class="leaflet-layer" style="position: absolute; width: 642px; height: 484px;"></div>`
is being covered by another element:
`<div class="jsdialog ui-button-box end" id="">...</div>`
Fix this problem, or use {force: true} to disable error checking.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I8b0dde030b2aadf554db75872facb6c5c96a321c
Don't allow separator and spacer (placeolder which expands)
to be target of a focus when we use tab key.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I724604eb299c65e4709d3e7708f514c312188393
At least on iOS, the new paste handler needs to send an uno message to
the LibreOffice code.
Also, completely remove fix for GitHub issue #5839. It no longer worked
and will be handled in a patch to LibreOffice's native iOS clipboard
handling code. Ultimately, GitHub issue #5839 was caused by the iOS
clipboard code's failure to never fire a "clipboard content changed"
event. So, the LibreOffice application layers never updated their
pasting enabled state.
Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: I4e198a45d863e3ecaf1dd04e85ce9d0d9b1a0894
It didn't work: prettier still used double quotes as a standard
so it was not possible to pass make check
This reverts commit 7c5c5bd47b.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic04f1591dc39bbfe522ed2b840c543ec42b3ffa3
Also pass 'autosave' status in a more conventional way.
Ideally we would split 'save' away from a ChildSession / ClientSession
and have this on DocumentBroker / Document - for the future.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I39a6caf8b17fa2fc2d940ae0d11bdc2d4da20b6c
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I9098f7137d81bbc63e2449fbc8ecc53b3f1e7e7e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Problem :
- Open the document which have some comment from other User
- we can see that they are same as the logged in user avatar
regression
- this is a regression from commit e855aa6114
- we were paasing url of user which is logged in and that should not happning for other user avatar image
Solution: - while setUserImage function pass viewId
- this will help to identify the user Info from map
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I5ee8b41c2e58a4ba15ecf551b264f944aa926da8
Avatars on the user list where shown too big
When userlist-dropdown was separated from userListHeader as a
JSDialog, the proper avatar-img css stopped applying.
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: I58539c492758c4ecea09d598ba7e113034078cd9
- Now as we hide the button for none edit modified
- we need to check for items visiblity and not the disabled attr
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ic0b1765cd12381ea359a8ff65dd88a350d9e9f33
- Readonly option was only present in writer before this patch
- this will add option for all other Apps: Calc,Draw,Impress
There is slight issue while getting the read-only flag for MobileTopBar .
- `app.map. isReadOnlyMode ()`: Still not work because at point of getToolItems() no permission had be setted in permission.js file for function `isReadOnly()`
- it means this._permission still undefined when we cal `app.map. isReadOnlyMode ()` from Control.MobileTopBar.js-
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I1f5fa012218ec1025ae32e33a99363fd2ffb87ab
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
- we disabled some specific button on mobile top toolbar
- but just disabling it won't hide that from UI
- maybe it is better to not show those buttons
- it also occupies much space in top view
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I5609fb5d02bcb0590a430df73ef4568ca838c960
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Iff00cdd8e1a8863c09362cefa3a2bfdf6275f837
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I60028b22e570d2566a4d64b0cd70150530830852
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I52851e3473532781fb03f2ac9d7c14614c2d7814
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ia518a7f60c39109de82e0c9b38185ebe757df1cf
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ieb789f923357b3ff7749fee0202b15990491cfdc
The SocketPoll ctor which may, depending on COOL_WATCHDOG env variable,
want to override the SIG2 handler so set user signal handlers before
that otherwise tthat choice is overwritten
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I305570ab8becb41f0696e60908c1ca26fd9ba14a
Currently translated at 100.0% (478 of 478 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (584 of 584 strings)
Translated using Weblate (Czech)
Currently translated at 98.6% (576 of 584 strings)
Co-authored-by: Stanislav Horáček <stanislav.horacek@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/cs/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/cs/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Idee227b1605577163dabf22675d99ebbda590002
Currently translated at 100.0% (584 of 584 strings)
Translated using Weblate (Hebrew)
Currently translated at 51.8% (248 of 478 strings)
Translated using Weblate (Hebrew)
Currently translated at 96.2% (562 of 584 strings)
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/he/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/he/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I20f108e6599109cfc975e046b6cb92390ab5040b
Type a word into Writer, select it, Ctrl-K, the link text should default
to the selection, but it was empty.
This happens because Toolbar.js getTextForLink() doesn't have the
pre-fetched clipboard anymore, so we return an empty string there.
Fix the problem by triggering a text selection fetch (and leaving the
clipboard alone), and then handling the hyperlink dialog on the
CanvasTileLayer.js side.
Once this is done, the usual dummy clipboard registration & copy() calls
need adding and the test passes even with the patch from
<https://github.com/CollaboraOnline/online/issues/8648#issuecomment-2037278091>.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ibd8313588e705c4b027643b452099bbf02cfe8ec
- Add aria-label to input if aria properties present in the widget data
- Add appropriate roles to input and div as per standards mentioned in MDN docs for accessbility combobox
- Modified combobox button click event to open popup using Space key as well, as mentioned in the MDN docs for accessbility
Signed-off-by: Antony <dasantony@rocketmail.com>
Change-Id: I66ebc6897e6a9a73a65f53d5cbd2f06a645dcb3f
Signed-off-by: Antony <dasantony@rocketmail.com>
Change-Id: Id39242ea2fa57f8f5a46efca7a73b529ceae088d
We need to have a valid wopiFileInfo instance
even on Mobile, since we dereference it
to get the actual unique_ptr.
Eventually, we should change this to be
a shared_ptr everywhere, but until then
we need to make sure the pointer is valid.
Change-Id: I54b6a0f862e319f4e727c28ac396102410bb422d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
When we call checkFileInfo from the constructor
of CheckFileInfo, it is possible for the
callback to get fired immediately if we fail
to open a socket.
In that case, the caller would have had
no chance of having stored the reference to
the CheckFileInfo object instance, so
the callback would fire without the owner
having a way to properly do housekeeping.
By moving the call outside of the constructor
and making it explicit, we allow for a
better management of the CheckFileInfo
object instance.
Change-Id: I3094b73fa3ab70e83ec5238959defcb2fd9ecf4e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
One way for integrations to ask for dark mode is to set URL parameters.
This works for e.g. the language, but didn't work for dark mode.
There was already a parameter for this, but it was limited to Android.
Fix the problem by exposing the parameter for non-Android as well, and
also extend global.js to default to this, but keep the local storage as
an option to customize the setting if the user wants to.
Tested with 'make run', <input type=hidden> way may need more work on
top of this.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I78c4115a8e337ef2b1ea9e498db2572965762bef
Note the url sanitised is the url passed to
the iframe, not the url in the popup window
Signed-off-by: NickWingate <nick.wingate@collabora.com>
Change-Id: Idad9bfaa390d83cfb083b99144cb9d0a54705287
Firefox has automatic url navigation when we use
document.write and changes the url to the parent
window. document.write may also cause additional
problems (see https://developer.mozilla.org/en-US/docs/Web/API/Document/write)
Instead change only the innerHTML of the document.
Signed-off-by: NickWingate <nick.wingate@collabora.com>
Change-Id: I55b88fd557af05b2a0e49adb7f08e9467dd4a4ba
Open an empty popup with a blank url, then set the
content of the popup to be our slideURL wrapped inside an
iframe with a user friendly title.
Focus the iframe on load so that arrowkey navigation works
and forward the eventlisterner of the iframe to the parent
window to watch for escape key calls
Signed-off-by: NickWingate <nick.wingate@collabora.com>
Change-Id: Ie1063095db51119fd45453b8b4b180fcacb6d7c1
We fall back to MNT_FORCE only when
MNT_DETACH fails. Also improves when
we log the error to stderr.
Change-Id: I8b8b2a863b0339ddd489f1d0150446e6bae82a8a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
problem:
zotero was not loading because element.text didn't exist
on adding bibliography there was error to parse JSON,
because there's some more data in string after JSON
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: If34791ae7ca79ca7fd304b506cd483e929f4d2ac
It will launch the gui at the end if found
It's much faster than valgrind+massif
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: Ied5a00ab634f78bbb0dd24a48a83ae4293183cd4
A nice followup would be a change to automatically do this on all JQuery
tooltips, maybe I will make a commit to do that later
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I545f5e8d45849fb1b000c321b3554efd874eaaf8
To work even if we don't automatically fetch HTML when a text selection
is created.
'Insert hyperlink.' needs more work, leave that one alone for now.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I6abdc40e46d5347c8c005c1289b59ef8933f08d2
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I1b674504b682dc7fce2c6a437dc91aadd8065531
To work even if we don't automatically fetch HTML when a text selection
is created.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ic55ddf984d8605c8627e87454a4b4916e15523d1
Move two functions from desktop/writer/copy_paste_spec.js to
common/helper.js, this way desktop/calc/clipboard_spec.js can do an
explicit Copy and then it passes even with the async copy.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I7874f0ac00a4237a90015b0fbcd67dcfd2e9ad68
Once the patch from
<https://github.com/CollaboraOnline/online/issues/8648#issuecomment-2037278091>
is applied to make CanvasTileLayer.js _onTextSelectionMsg() not fetch
the clipboard proactively, this test started to fail.
This happened because the test assumed that once a text selection is
created, we have the HTML for it, which is no longer the case.
Fix the problem by extending the dummy clipboard code to also handle
plain text and by adding a function which triggers the copy(), to
minimize the changes to the actual test code.
This is just a start, lots of other tests still need fixing, and once
the pattern is clear, common code should be extracted to
cypress_test/integration_tests/common/helper.js, probably.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I21ed1143470fa8026e133b0519e114a40fc0ed90
At least on iOS, the new copy handler works as intended and sends an
uno message to the LibreOffice code.
Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: Ifa7dc0738dccf0642a9fadd48919e00bfb62e402
Use SimpleRectangle for cell cursor.
Add .clone function to SimplePoint.
Use app.file.calc.cellCursor.visible for checking the cursor visibility instead of null variables.
Replace map._cellCursorPixels with app.file.calc.cellCursor.rectangle
Remove map._cellCursorXY with app.file.calc.cellCursor.address
Replace map._validatedCellXY with SimplePoint.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I9b1e2c92e5029b2f184055083d35200bb5e6b8c9
we picked something obscure, and clearly aarch64 took advantage of
not adding something obscure unnecessary for backwards compatibility
on that arch
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I097ef24c98e23931a3997c743d17d52c0afd52b7
Re-using an inherited file descriptor to /dev/urandom frees us
from problems with mount options including 'nodev' and removes a
capability from the set we need.
Change-Id: I70337e923f802d7efbd3159c11a4e39f6529b6e6
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
This should be inherited by forked children, and kept alive at all
times. If we have it already open everywhere, there seems little
benefit to the getrandom / getentropy system calls.
Change-Id: I5d58f7216c65febd161cbd78c24308d9192830ee
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
after accessibility rework in notebookbar we use "-"
as separator between id sections for something...
this breaks getting the menubutton items by id,
let's avoid that character then
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I58f6c03bd635e981986b64ae2acfc43561146e8f
As in https://caniuse.com/?search=text-wrap
text-wrap property is not used in currently most
popular Firefox versions, let's change it to
more popular white-space property.
It fixed wrapping of text in statusbar in Firefox
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0fc68fbb128db56844ae8e0174fe292ee95c572a
- desktop shows userlist on the top, don't show duplicate in the statusbar
- make behavior compatible with previous version (23.05)
- remove unused signal: it is fired but nothing is listening for it
(updateuserlistcount)
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iabcb3b4a926c8941acf2e1425a9a28ede6e88311
This allows to share code and provide unified interface
for functionality like: show/hide/enable/disable/insert item.
Also restricted mode is supported for all the items.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4a4e7ea43a993751b28f685544827d00b2b3668f
Currently translated at 100.0% (22 of 22 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (110 of 110 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (22 of 22 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (110 of 110 strings)
Co-authored-by: Flavio F. M <flavius_androiduser@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-app/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-lib/pt_BR/
Translation: Collabora Online/Android app
Translation: Collabora Online/Android lib
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I8b69106c8f95d50ab2bda716cde84c71a12a149d
Initial background save implementation from the Kit perspective.
To do a background save we:
1. join known threads - we can't fork with >1 thread.
2. check all is well: one thread, nothing unusual...
3. create a socketpair to communicate with the child
4. fork
5. child: cleanup duplicated sockets
6. child: setup LOK to not damage our shared file-system
7. child: save
8. child: report status back to parent & _Exit
There is still a substantial TODO, but this can be built on.
Change-Id: Ibf2c492372e2b5133932773e230ad05e18521794
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Remove any stale elements from KitSocketPoll::KSPolls and
block until an element is added to KitSocketPoll::KSPolls
Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: I25726171ef28d9107772f7665dd3cbb467e364e5
So watchdog won't fire for a stalling kit.
After a fork the child has only one thread, but a copy of the watchdog
object.
Stop the watchdog thread before fork, let the child discard its copy of
the watchdog that is now in a discardable state.
And allow it to create a new one on the next SocketPoll ctor.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I7dc166dca3996401fbdc20cd7643f944662454c8
- User avatar should first consider is there is already extract info available or not
- if we already have that image source data then please do not set default value
- also when mode change we do preform some refresh function on all icons
- `map.on('themechanged', setupIcon, this);`
- in that case as well, first check if we have user extract info or not
- and based on that set image source URL
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ifbd543322f5222fa7717b40a5ae565ed2f3c9891
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
For one, getting the selection HTML all the time when we create a text
selection is a waste of resources, since only a subsequent copy needs
that HTML. For another, the complex selection case required a confusing
"two step copy" workflow, where first you press Ctrl-C, then you
download the large selection, finally you press Ctrl-C again.
The underlying problem is the same: the document.execCommand() API for
copy (and cut) is synchronous, but network operations are async, which
don't play well together.
Fix the problem by trying to use navigator.clipboard.write() instead:
the write() call still has to happen inside a magic security context
(keyboard used, click happened), but it can take a callback as a
parameter, and inside that callback it's fine to perform async network
operations, which allows both using a one-step copy and getting rid of
the HTML download on text selection change (when most of the time we
don't need it).
Tested:
- Chrome and Safari; the behavior for Firefox is unchanged, unless
about:config opts in to expose the new Clipboard API.
- HTML, plain text and image copy.
- Cut, not only copy.
- Doing this with the notebookbar button & keyboard.
- A single cypress test now uses a fake clipboard to assert copy. The
rest of the tests are left unchanged for now, but likely we need to
get rid of this implicit assumption that the copy container is updated
on selection change: different behavior for automated vs manual testing
is ugly.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ifcf16474a339f3f1dae3dc99181836e645340048
So far we had duplicated snackbar code.
Desktop version was more advanced, mobile wasn't updated.
Mobile one used mobile-wizard as a base so we had to hide
currently presented menu to show small piece of information.
Let's use desktop snackbar on mobile as well. We will be able to
remove old code path from mobile later.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I1da7a6b75591913ca0fc66f6d0e81d136c874f62
Let's allow usage of JSDialog component previously
used on desktop and tablet only - in some cases on mobile.
This case are dropdowns which we do not want to show
as separate mobile wizard screen (eg. alignment selector
from toolbar).
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ibcfaea457c065c34644738c7bf56a2e4e53c50a3
So we can type our messages, callbacks and better manage
where message is sent
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I3290f5cf9bc08669353d3e71785baffc6fb07003
If MenuButton has custom menu defined it should
use original data.id as a command to avoid warnings
about missing icon with "-menu" suffix.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I06dfcdb0412c7d087f4002cdfff83f8157c3f237
Remove toErase list; instead null socket pointers earlier
to make things more deterministic.
Simplify toErase path, by just removing null sockets.
Check _socketPoll array bounds to cope with a re-entrant
mutation - imperfect; but the fd comparison will help.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I27d81358a7d80b939b50ce4ccb1b2178a091a360
This reduces code duplication and makes
the code more readable by extracting
the huge block that processes plugins.
Change-Id: I2dc243173a4122ae1d5fc5b3fa2b40daff9664e4
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Since we have a more accurate reason
for failing to load, that's what we
should always return.
Change-Id: If9d38cf6de6d41310ba94857efcd073e3f4ef8b7
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
problem:
when online created file using WOPI clients, creation dates were never set.
in online files are created using templates, even empty files are created using
an empty template
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I312d7af17bf322ca55b6e20bba344e4fc6628e66
- Added 'Contains text...' and 'Duplicate...' as menu entries under Conditional > Condition...
- Introduced a new sub-entry Top/Bottom Rules' under Conditional, with the following options:
- Top n elements
- Top n% (n percent)
- Bottom n elements
- Bottom n% (n percent)
- Above Average
- Below Average
These changes enhance the functionality of the Conditional formatting menu by incorporating commonly used options for users.
Signed-off-by: codewithvk <vivek.javiya@collabora.com>
Change-Id: I1c3c06b21a9d26e6a8966782c0af07381403c08f
Visit the
/cool/clipboard?WOPISrc=...&MimeType=text/html,text/plain;charset=utf-8
endpoint, you get a JSON with HTML and plain text. Visit
/cool/clipboard?WOPISrc=...&MimeType=text/html, you get HTML with a
custom header that is only possibly to skip easily because HTML itself
has as well-known header.
This is decied in ChildSession::getClipboard(), which has 3 cases: 1)
single specific format 2) multiple specific formats and 3) all formats.
So far only 2) used JSON, but the new async clipboard copy will want to
(als) request just plain text, where skipping our own custom header is
hard, given that the text itself has no well-known header (unlike HTML).
Solve the problem by always using JSON when a specific format is
requested, so both the HTML and HTML+plaintext case gives JSON.
The client side of this is the recently introduced Clipboard.js
parseClipboard(), which can cope with JSON already.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I8298f3f82d2a3871777c369f5aee6bb81d66a553
Problem:
- At various places, form elements are linked to the same label both through the 'for' attribute in the
associated label, and through the 'aria-labelled by' attribute in the element itself.
- This double linkage
can lead to confusion and redundancy, especially when using assistive technologies.
What should we do:
- Remove Redundant Linkage: In most cases, the 'for' attribute in the label is sufficient to
establish a clear linkage. The 'aria-labelled by' attribute can be removed in this case to avoid
redundancy.
- Consistent Use of Attributes: Ensure consistent use of attributes throughout the website. Use
either 'for' or 'aria-labelled by' depending on the context and requirements, but avoid double
linkage
Solution :
- as we made label `for` attribute value consistent with `id` value for its corresponding `input/select` element
- https://github.com/CollaboraOnline/online/pull/8646
- now we can remove 'aria-labelled by' as there is already linkage present
- there are some cases where labels are not present, we must use `aria-labelledby` in that case.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I389d271280a80835fd7345e8221e3777f8f8ed51
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
- fix typo in cypress function name
- unify mobile and desktop searchbar controls
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2212f588ca720634b073111b1c78f10c6ee6b7ea
This way it can be reused in future code in Clipboard.js when
navigator.clipboard.write() is used, without duplication.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I843577e55802bcb7ad6cbdc5f83919172bc7d3e0
Problem:
- The labels for the <select> elements are being associated with a <div> element that surrounds the
corresponding <select> element instead of directly linking it to the <select> element.
- This creates an unclear semantic relationship between the label and the actual form element, affecting usability for
users with assistive technologies
- this was not only issue with `select` element but for all input selection elements in JSDialogBuilder
Solution:
- `lable` and it's corresponding `input/select` element should have same `for` and `id` values
- this patch will make `for` attr of `label` equals to `id` attr value of 'input/select' elements
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: If341174edcdb72af6fde3da14d5ed36ba0c3ae95
- in the formulabar in Calc
- type "=" then click "accept formula"
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I120f655766bc5e2b4688aec0e598da9c847478a8
- it failed due to click on disabled button
- make waiting for idle click be aware of that
- add small waits after doing table changes to
allow updates to be applied
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: If19352923aeca4c18024f3a2ffcc3731a8aff96f
- but still use class for css rules
- after rework in styling to use attribute we can drop that
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I568eedf45440f6636c31430cb98adcfdeab6aa4e
Add guard for notebookbar data and tab existence.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: Ied5ef0f75735db12b108a9348062bcd48fd25fd2
When focus is in the notebookbar, arrow keys allow focus to be moved.
Signed-off-by: Oli <oli.baker@collabora.com>
Change-Id: Iccc9122f77c224e0190f25732ff9e4a24e4eab3e
it happens on context change (eg. shape selection) in
compact mode where context change handler used wrong
instance of toolbar
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I9b080786454a3e7ecbf5273ba609671de3f3eb01
- this helps to reuse code and keep it clean
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I029ac4f5d84f878f36a0d5d9abcecabe0ec63ad1
- reuse JSDialog Dropdown
- remove hack with overflow which was needed to show
any popup above notebookbar
- fixes scrollbar visible above compact toolbar when
switching from notebookbar mode
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0366dbd68df20991d5fb26d116c38fb657e64c6d
- put in single place with other button rules
- apply also to .jsdialog case (selected, hover)
so it will be used in new toolbars
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic04e1939908e0030e710902d38846ba50954fe23
- toolbar had it's own status updates
- adjust the old code to use new toolbar functions
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I6da6b75b40678ed8d32500151b7c1e2c436a8cfe
- added recommendation for resource values for production enviroment
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Ia9a4b730bb7fd4c990d8c34531230b04c3a7f250
Also fix Accept / Reject, which didn't show up.
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: Ia27b19d640fb59e24b4f7ccabc0df7f2d1fa2498
Currently translated at 90.9% (20 of 22 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.1% (108 of 110 strings)
Co-authored-by: Flavio F. M <flavius_androiduser@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-app/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-lib/pt_BR/
Translation: Collabora Online/Android app
Translation: Collabora Online/Android lib
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ibc54266fea67e85ff6151b88d6b759f630171718
so we will not fail with some themes used
also not fail when we didn't show sidebar switch
on the toolbar
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Id511004176dcf91b553417a74cb3b71c239873eb
- reuse old code as much as possible
- font, fontsize, style are managed by old select2 wrapper
- move some commands to dispatcher
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2fd1820b36f3c63a5fdcc482afbcc5ffe04e299f
Don't wait for the other end to acknowledge closing the socket.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: If5e4bb6d9c5148c0e0c61d59c233f6cf5594c577
Before spawning a child thread we want to close wakeups and
remove them from our global list to avoid the child waking the
parent.
However - if we are re-using a SocketPoll in a forked child,
we need to be able to create new wakeup sockets, so factor
out for re-use.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I06b088e02127482a65cd9666114ca9a93fd5ca7b
shutdown closes a socket in both the parent and the child process,
which is not what we want when forking a bgsave process - and
certainly not for the socketpair we communicate down.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I10418e9c7f5edca60f257a60f11ba396984d39b2
This will enable thread joining before fork for bgsave.
Change-Id: I68c7c53f892f5edef861137c48759c7ccb8532ab
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Previously we clamped the pinch so it could not go outside the bounds of
the initial zoom pane (presumably this was intended to avoid you going
outside the map with your pinch).
Unfortunately, this is the initial bounds, causing a nasty edge when you
panned around too much, which is particularly noticable with the
improved zoom-pan ergonomics.
I decided to remove this altogether rather than scaling it correctly, as
I don't believe that a check to make sure you're not going outside the
map feels particularly natural when pinch-zooming around the document,
particularly as only the center of your pinch is checked.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ib98ca91e82bbe7f2bb9986595fc5f7928e2206c9
Previously the new zoom did not correctly calculate where the end of the
zoom should be centered, causing the zoom to jump when it finished.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ic6c1eb032c66af764da4efca3f015af895e75600
Previously, overlayed elements such as the cursor did not properly
follow the new zoom as they were separately calculated. To fix this, we
can use the _getZoomDocPos function to calculate where these should be
drawn
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I39d6c926895e72be03ad33e6a9221a4f740e9b50
Previously, the document would not always properly follow your finger
when you tried to pan while in a pinch-zoom. In particular, we would
sometimes get this disatrously wrong (e.g. at some zoom levels we would
move our fingers one way and have the document go the other!).
I have rewritten the _getZoomDocPos function to avoid this, in
particular by adding a parameter to keep track of where our zoom started
from which lets us know where we need to zoom around. In the
mouse/button zoom case this doesn't change, but in the touchscreen zoom
case it informs us how much the viewport should have been moved.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ia87d941651da43eb5c16c8ce10a2493e7214252a
Previously if we were in animation from the end of a swipe and we started
a zoom, we would cut the animation but not continue to start a zoom. This
made surprising behavior when you could put down two fingers to stop the
ongoing movement but could not then zoom with them.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ib4c6e686caaf78b3637563da6fcc914c06f3055a
By tracking the thread-id, we can deliver a SIGUSR2 to the right
thread at the right time; this avoids perf polling our uninteresting
watchdog thread.
In that thread use Caolan's suitably obscure futimestat system-call,
so that we can record based on that to see only slow things:
perf record -e syscalls:sys_enter_futimesat -ag --call-graph dwarf,65528
Change-Id: Iad05d8589fdc9541a7d0599f63625d2cde5fdf89
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
- move plain html controls into HTMLContent widget
- reuse scrollable bar from notebookbar
- use dynamically loaded menu entries in MenuButton
- allow to update MenuButton which contains menu id in the id
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2b77479520c03420fefeb32dd09d6b34279e5686
If the element 'spreadsheet-tab-scroll' does not exist
when loads document, then scroll to the selected tab.
Change-Id: Iec86225f7ea97a149d455210921daaf91a4e761a
Signed-off-by: Henry Castro <hcastro@collabora.com>
Add a guard for potentially undefined functions in scroll section.
Allow arrow and home, end keys in readonly mode.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: Ie695ebf2cd14f49fbb4db2b9ba8f81df5b289591
Tooltip can be modified only when was already initialized.
Sometimes we tried to hide it without initilization.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I6f4a18acef6be2d3c00548f8b4408c7876d6bdfa
"An invalid form control with name='' is not focusable."
Change-Id: Ic81d91748371147beed6cbc7b43cc569412760ba
Signed-off-by: Henry Castro <hcastro@collabora.com>
Before this commit, already opened ui-tooltips were being placed on top
of everything, including modal dailogs. Fix that, set jquery css
line to the same z-index used by non-modal dialogs.
Additionally: update browser/README file so it documents this change
and clean up vex legacy bits.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ie7123822d96c594433ac197aeb9c651aa9b14461
Before this commit annotations could have different widths. A comment
with a very short text - not filling a line - would result in a
abnormal narrow annotation card, screenshot of the observed bug:
https://archive.org/download/collabora-online-comment-width-bug/collabora-online-comment-width-bug.png
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I7d51ebf53d5eb9e1361c59cee9ce9ba19e703299
we now load the document in the initial theme, so we don't need
this additional activation of the dark theme.
Change-Id: I523dda19cacd6fd3f81cd86ee554aacd5f73edea
Signed-off-by: Henry Castro <hcastro@collabora.com>
- icon url passed inside `setImage` function was wrong
- line spacing icons are not correctly
- this patch will correct the url before setImage
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ie733c79c4edae404d934953eaea20632bc18f8da
Position and Size dialog of the shape has a rotation angle widget in
rotation tab. User can drag move instead only one click on the rotation
angle widget. It causes a permanent tooltip on document. So It is better
to handle mousedown instead click to close tooltip.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Idbea0bb8a56568a92f3f4d4c9ee6df1da01b7c24
Previously, we would sometimes get the same error event mulitple times,
leading to us erroneously believing that an image which loaded correctly
was invalid. This caused images to sometimes disappear, particularly
when switching to dark mode.
Additionally, some images are critical to layout so even if they fail to
load we should not 'display: none' them. We can set their src to an
invisible pixel to get a similar effect. We must assume that they have
their width/height correctly set elsewhere or things such as the broken
image would also break the layout.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Id8e52416a60d394a00669e266595344eaa3376d2
This reverts commit 1bb727c25f, which is
change ID I16172a4d3148390896e3d475b7810598d94ceb27
The commit was a quick fix for an issue where we would sometimes process
image errors multiple times, leading to us hiding them. In the next
commit, I modify checkIfImageExists to avoid this issue entirely,
meaning that the fix is no longer needed.
The dark mode SVG added in it was a duplicate of the light SVG so can
also be removed.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ia5ea01f34a8b38472c885e5a8b7b227006bf9935
The core commit 'show cell cursor on in place editing' introduced a
regression: cell cursor messages grabs focus from the formula bar when
used for editing. The regression was causing the failure of
desktop/calc/focus_spec.js cypress unit test.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: If4274cc510af065feb7aa13806a86746302b22b2
Should launch new children more quickly on child death,
as well as getting to a waitpid and cleaning the zombies
faster too.
Change-Id: I06c36f63ac7ff52c407f739f1ce10d5e680fb82f
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
On switching tab not clear other view messages saved for replay.
Added cypress unit tests for checking the cell view cursor bounds.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I788828783a86038bb9d7f26648925b0e03bd560a
In Iea4d16918b054d355e6d8695e0dc1d6ededd6793, a regression was
introduced where we would check for a specific property of _map when
dragging anything. This was needed only in calc to determine the RTLness
of the sheet. Unfortunately, _map can sometimes be undefined (such as
when dragging around a comment in impress).
By moving the RTL check so it only executes if there is a map, we can
avoid this error, but the check will still run where it needs to.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I9994a3957e37975360126fab33ba08e807d723dd
* Enable security.enable_macros_execution in coolwsd.xml.
* Open a file with a macro.
* Click Help.
Expected result: the popup dialog should not close
Change-Id: I3981c1ddbb3782dd9ee43dc0c9dce282d2f21392
Signed-off-by: Henry Castro <hcastro@collabora.com>
It was part of the removed Vereign document signing feature.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I46e40c10f19a1f6bc821b51553d2a8276d2407fb
Replace four helper functions (insertMultipleComment setupUIforCommentInsert
createComment saveComment) with one (insertComment)
Simplify code flow
Remove unneeded docType conditionals
Remove unneded identical arguments from every call
Add more relevant assertions
Use force click to remove extra toolbar clicks
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Ia4bc4ac964fd0ee754a481843d55682b87b63086
Finally, a robust solution for checking sheet contents
Uses .should() to make a retriable assertion, subject to normal
timeouts and with no need to wait before.
Fixes sporadic failures in desktop/calc/autofilter_spec.js
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I9c4e36b3bcdf0968e9b95237f3f17f284d2628de
Some code in this file is unused. In particular, the conditions to
fulfill touch scrolling will never be met since
I9016fc15ad3ccb3664af348fdcdca006495b0778, and the _performScroll
handler is never called. Let's delete it!
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Id34380f09300935dcb74435d8d94104d235f6f21
Previously we did not take into account whether something was RTL when
scrolling it with ScrollSection. By introduing a new isRTL function to
check this, we can do something different (in this case scrolling the
other direction) if we are controlling an element that should be RTL.
We need to introduce a function, as whether we are using RTL can change
over the lifetime of the ScrollSection
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: If4261a3e32375f6127241b846b97a3b4ac29eb0b
Previously when we were in RTL mode panning would be flipped. This
commit unflips it
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Iea4d16918b054d355e6d8695e0dc1d6ededd6793
- it is on the left below slides list
- handle disabled state in CSS for regular unotoolbuttons
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iebff6e7db0234a4f61c532397bab697c1071595d
Forkit forking children is done in response to socket messages,
and parent process death should kill us too.
In general if we are relying on a poll to spin to achieve
something, we have a performance bug; this should exacerbate them
to flush them out.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I60d1c3b3c2532bbd686a3d3cfdea10f2a541a19a
In-line and specialize helper used just once.
Simplify code-flow, and reduce duplication.
Reduce duplicate logging.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I1ed68fdff5edfb10466d8bd13e88e5d2a5a71a63
This lets us detect when Kit processes die without waiting for
the poll() timeout and feebly spinning the PrisonerPoll loop.
Instead we get notified immediately; but to do this we then need
to be able to safely transfer the socket between SocketPolls.
SocketPoll's should own Sockets - so by switching ChildProcess to
use a weak_ptr and also the NewChildren list - we can have standard
ownership and a sensible transfer between SocketPolls. A Socket is
owned either by PrisonerPoll or a DocumentBroker in the normal way.
Clean the NewChildren list as/when children are unexpectedly killed
apparently there are still some ownership issues probably around
the strong ChildProcess _ws pointer.
Change-Id: Ie541a9d03e36aee53fd57c45953e0de21ebe1828
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
With faster starting spare kits we can end up waiting for a state
where there are no live or spare kits, but the spare kit has already
beaten us to the punch:
[testCrashKit] (+1124ms): Killing coolkit instances.| httpcrashtest.cpp:151
[killPid] (+1124ms): Killing 1650047| httpcrashtest.cpp:257
[killPid] (+1124ms): Killing 1650071| httpcrashtest.cpp:257
[waitForKitProcessCount] (+1124ms): Waiting for kit process count: Doc Kits: 0 Spare Kits: 0 | KitPidHelpers.cpp:70
[waitForKitProcessCount] (+1124ms): Current kit processes: Doc Kits: [1650047, ] Spare Kits: [1650071, ]| KitPidHelpers.cpp:80
...
Forking a coolkit process with jailId: 09X67pOy1HAgSk9G as spare coolkit #5.| kit/ForKit.cpp:406
...
[waitForKitProcessCount] (+1558ms): Current kit processes: Doc Kits: [] Spare Kits: [1650083, ]| KitPidHelpers.cpp:94
... fail ...
Avoid this by intersecting before & after to ensure are all before are
dead.
Cleanup exposing the more problematic wait-for-zero-spare method.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I6f0ba87139b58f9bf1770ebbc5cac95b5063679e
- SheetsBar is on the bottom in Calc, with buttons + tabs
- add callabck for edit field - only fired after ENTER
this fixes issue from FormulaBar conversion to JSDialog
- fix cypress mobile
- simplify CSS
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I7a286c87564e5ee0a89055ab4faa4daef9af31f5
In order to handle commands in a more structured way.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: If7e2aed089cda1df59b2bf2b454b540d36391df0
To distinguish it from the local variables that it's not using.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I1d1fe3a6506afd43cbfc8b1084a4d321f5d743d1
Previously there was no dark mode user SVG, which led to a failed load.
Additionally, we were using L.LOUtil.checkIfImageExists which sometimes
hides the image if it is unable to substitute it for a light mode one.
This caused the layout to fail as avatars were required to properly
space everything else.
By changing this so we provide both a dark and light mode user image, we
can avoid using the function which problematically hides the images in
this case.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I16172a4d3148390896e3d475b7810598d94ceb27
Previously the borders and text of the following chip were hardcoded to
be black, but this doesn't work excellently in dark mode. Using the css
variable will make the text and user border always be a color that can
be read.
It may be sensible for us to also change the pool of following border
colors as they are all very dark, but that can wait for a future PR.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ia2dcdf24ae12f5d45f59ef7ba3c2ed8e4ab5acf4
there might be coolwsds launched from another service which doesn't
match -u coolwsd, so use -t coolwsd instead to capture all of them
then their output might be interleaved, so switch to another log
format that retains the name[pid] and stable sort on that column
so we have all the matching lines for a name[pid] contiguous but
ordered within that by time. After the sort, cut to drop the
columns that are additional over the 'cat' format.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Id1d1c37001249ff348d6c09c005fb0836133258c
Comment Undo-Redo:
AssertionError: Timed out retrying after 10000ms: expected '<div#comment-container-2.cool-annotation.cool-annotation-collapsed-show>' to have class 'tracked-deleted-comment-show'
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iae9361e5189ec8795a6dc6e0ac83cc99d653a538
Merge cells:
AssertionError: Timed out retrying after 10000ms: Expected to find element: `#copy-paste-container table td`, but never found it. Queried from:
> cy.get(#coolframe, [object Object]).its(0.contentDocument, [object Object])
at Context.eval (integration_tests/mobile/calc/bottom_toolbar_spec.js:74:50)
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I8ecca00d9a1c5cc35949b4b6f875092b487d60c4
Test failed in 23.05 because of a change in .leaflet-marker-icon
Rewrite openContextMenu and remove uses of .leaflet-marker-icon
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Iecfacdd192ea723001ed56e6c9f0c32645a6af2c
E.g. unit-copy-paste emitted a warning like this:
wsd-1576653-1576734 2024-03-20 21:28:53.448488 +0000 [ docbroker_002 ] DBG ToClient-005: Missing <body> ...
This is a real problem in case the clipboard has HTML, but it's fine
when the clipboard is just plain text.
Fix the noise by returning early when the body of the clipboardcontent
message contains just plain text.
This works because the body never starts with plain text when HTML is
also available: the JSON case is not an issue and the entire clipboard
dump lists HTML before plain text.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I1ff51249fb710e3a9c127917aae4178c22738668
It was part of the removed Vereign document signing feature.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ibe8a31102eaefcfba1898ad2f31226c24e12f330
WebSocketSession is used exclusively for tests,
so it's best that it is located in the test
directory.
Change-Id: I88333d619902df7991c3f26b94ed309246446ae0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
problem:
in impress get into textbox editing and then try to drag and move text box,
you get js error because map is null
regression from 9cf64b0726
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I586c5f242241aa50f62c49371c994aeb7c370525
- The title of the modal window is currently marked with a <span> tag instead of an appropriate heading
tag (such as <h2> , <h3> , etc.).
- This affects the semantic structure of the page and makes it difficult for
users with assistive technologies like screen readers to effectively navigate the page.
- The modal title is not recognized as such, which hinders orientation and understanding of the content.
- Solution:
- replace <span> tag with <h2>(header tag) for `ui-dialog-title`.
- to make font-size consistent added css rule for `ui-dialog-title`.
Note: this will change all js dialog title withg header tags ( not only specific to writer but also effeted for every document type)
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I5a1e276c3a129400aa5834e186a263db95f01833
Partial revert of commit aa259d7337.
Also make idle tests run before multiuser
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I87024193d81bcadc9ea77e9033dceb3c6250d966
Container was showing in cypress mobile tests.
In Calc, this blocked clicks from reaching the top left cell.
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I7ceab551b7247962d9517f52560e6e03646511bf
In case the selection is complex (not simple), we used to just request
HTML, and then the browser converted that to plain text, which has the
downsides already mentioned in commit
7f9de46688 (cool#8465 clipboard: improve
handling of plain text copy, simple case, 2024-03-08).
Steps to support this:
1) Clipboard.js now asks for the text/html,text/plain;charset=utf-8 MIME
types.
2) wsd: ClientRequestDispatcher::handleClipboardRequest() now maps this
to DocumentBroker::CLIP_REQUEST_GET_HTML_PLAIN_ONLY
3) ClientSession::handleClipboardRequest() maps this to the HTML+plain
text MIME type list.
4) kit: ChildSession::getClipboard() is now improved to take a list of
MIME types, not just 1 or everything.
5) kit: ChildSession::getClipboard() now emits JSON in case not all, but
multiple MIME types are requested.
6) wsd: ClientSession::postProcessCopyPayload() now knows how to
postprocess clipboardcontent messages, which may or may not be JSON
(it's JSON if more formats are requested explicitly, leaving the 1
format or all format cases unchanged)
7) Control.DownloadProgress.js now handles the case when we get JSON and
sets the core-provided plain text next to the HTML.
Leave the handling of non-JSON case in, because this means we can
copy from an old COOL server to a new one.
Note that this approach has the benefit that once the clipboard marker
is inserted, the length of the text/html format would change, which
means we can't parse the clipboard data till the marker is removed.
Emitting JSON for html+text means adding the marker keeps the ability to
parse the HTML and the plain text part of the clipboard in JS.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I67a1f669e8a638d34cc25a2f288a7b30884b9892
Reduce the uses of MOBILEAPP conditionals by using the isMobileApp
function.
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: If541307fbc457b342674cc560b6c53454f3904cf
Removed all MOBILEAPP preprocessor conditionals from Util.hpp/.cpp
Added isMobileApp function to help remove further conditionals.
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: I038a4db47ec2a2c7bb10f5696df5571b13bd9a61
This allows for setting common headers
only once and have it on all file
types and scenarios.
Change-Id: Ia9d67ac5dbf59dd6e22beea0b4ae162ccb846b33
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The explicit header entries were needed
with Poco, but since we always set them
in our http::Response constructor, these
are redundant.
Change-Id: Ifde48fd3048018747dae3e84560b31960e511a25
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We always create http::Response instances
with these headers. These explicit entries
are vestiges from Poco sockets.
Change-Id: I65c263e95b253e22e4e6deae57fffc5616311c84
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is an internal helper and doesn't need
to pollute widely used headers, especially
that it pulls Poco headers with it.
Change-Id: I67a5aa64589d3f37141aff612f7fb807bb190d6f
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This helper doesn't implicitly authenticate the
user and generate a JWT token.
Change-Id: Ib32ba4c73948c12bf41520e32e6a16da0e9cb425
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This should not have been necessary for a long time; but add
some assertions to help check.
Change-Id: Iedbc0bb57839209d1f1caeaab7094e335c881e57
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
this puts buttons and inputs at fixed positions so they
don't move when we enter formula editing mode
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2dd99e3ac233b66847af0165359d15fb50a10a97
- Docbroker only uploads the document when the document is already saved and
there are no further modifications.
- But when using typer once dockerbroker saves the document and tries to upload
there are already new changes to the document. Therefore, docbroker keeps on
saving this new changes and keeps on skiping the upload as there are new
changes to the document; until it times out
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I427d37a6228299006530daddebdf4365af63588b
Copying from a document, closing it, reopening it and then pasting
did nothing.
The short-circuit for internal paste gave a false positive.
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: Ib21faf270d2ed03af2954f79bee8c1efbb0fd0ca
With some styles the following text was too large for the chip.
Unfortunately, sizing it to be consistent made it unreadably small. To
solve this, we can show only the first line of the text in the following
chip and show the second as a tooltip instead.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I4b5306370c31f4d0b13e1a91bf17a9d491807c45
This reverts commit e9cf81f29e.
problem:
when comment is being edited, nothing could be copied from the doc
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I34ceacc5d9c7d5eb7d57ec2489a47734b80a044f
Better to use the same height so to fix the misalignment
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If3e76a695a943eee4861479e2ce7b6b1dd287d4f
We continue to process all entries of
the array.
The command name is now correct.
Otherwise, an error was logged instead.
Change-Id: Ie5085e062dc36a4e955347246d5087ec7749d270
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This adds a single-shot emitting of ProfileZone
stats. It can be fired manually or done by
the destructor, allowing for profiling a section
that differs from the lifetime of the ProfileZone
instance.
Change-Id: I016096edf053d942a202079eed540f9e2df3870f
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
I did the things necessary for TypeScript to stop complaining, as well
as additional modernizing things such as formatting and removing
L.Class.extend
Here's the full list:
- Update browser/Makefile.am with the new filename
- Fix any typescript errors that prevented compile
- Remove L.Class
- Factor out repeated types
- Tighten types to avoid functions leaking anys
Though not all of those steps are necessary, they are all useful, as
along the way TypeScript helped me to find and fix several times when I
had incorrectly inferred what the type should be
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I20d6580c53337909788b0517353c5852365b871d
This was left around, presumably from before I typed user
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ie5ff95a04b20fd260ebfb3dc3317c3869ac22b91
Add a cypress test for the change in commit dfe1e1b5
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: Id829d271efe7ccebf58c9f83cc67e6b1cf8b72e9
Wait for formula bar buttons before typing
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I0603fee2acd7ba3090f7b8536a5e5d6f18a52179
If we get an identical request while already
processing an async CheckFileInfo (while
serving cool.html), we shouldn't clobber
the old instance and issue a new one.
Change-Id: Ie6da4ab780d581db74430dedd6d307a4ac2e0a0b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We might not have the WS yet when
CheckFileInfo fails or returns unauthorized.
Change-Id: Id0fe34a6fadef7ba4094707a0ae82b83b9b2a5fb
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- We made some adjustment in core side
- it will now send both property
1."State" = either button is selected or not
2."disabled" = either it is disabled or not
- based on above message made some adjustment and refactiong in update function
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I7aa9bae647252782fcc88bd11b34bf9954741502
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
- reuse MenuButton as base for colorControl
- add only last color indicator and activation on left side button
- make possible to clreate split button from unotoolbutton
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I8cd20149cc5bc25bedf4e0b0c56fc93d53339f4b
We also set the variable on the core side in order to allow saving edited documents.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I9ba97daca7013bf26b25fff785f175e3fb213dfb
This is implemented in two cases:
* using a request parameter '&startPresentation=true'
* for ppsx/pps for which the backend sends a startPresentation
stateChange event. This can be overridden passing
'&startPresentation=false' to allow editing the file.
The presentation can only start in present-in-window mode due to browser
gating fullscreen by user activation.
Refactor SlideShow._onFullScreen to better handle the requestFullscreen permission restriction failing case.
Also clean up old references to old restricted implementations.
Signed-off-by: Méven Car <meven.car@collabora.com>
Change-Id: I98fcb1a7da170fa1c6a7de75c680259163233c9d
Move debug toggle to after docloaded message
Move sidebar toggle even later than that
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Ib72b5ef4c2c31f7707a384b2d819d5cde57a796d
problem:
when using display scaling/zooming clicking on comment may cause
overlapping on comments if the previous comment from clicked comment is long
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I6e9eec3ba5c3fb9f871ce42bb0a554d7e2cc3c5e
We don't need a SocketPoll and its wake-pipes before we
run a test - obviously, and we should close it when we
fork a new test.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I56875b66ce2ba141baacdd70c973e9e9af02d1d0
Don't leave the wake-pipes lying around; it can't do any good
to have these cloned, and shared between child processes.
Change-Id: Ieb6c5c8fdd1285bc514116a1e00de76bcc5a1773
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
On fork a thread_local variable simply inherits the parents'
value - so clearing the cached thread_id helps to make
logging more accurate.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ib03d2605489291589854caa10940fd7c11caea36
This may not look hyper-elegant, but using ~Socket to do this
calls 'shutdown' first on the sockets, which closes the parent's
duplicate of the socket very unhelpfully. So close instead.
Don't touch and thus COW memory. We will leave the Socket Poll
around un-used, and un-polling from eg. the ForKit in the Kit
process.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I1328dee0278ce39350194c617acffa114887d523
Android build fails due to use of std::filesystem and
c++20 features like string::starts_with.
cmake requires c++2a flag
std::filesystem requires ndk 22+
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: Ibba1e5e76a32ba5526d9d7111b810a650f372a02
- instead of using /dev/[u]random devices, use
getentropy() to make direct system calls
if the system is a BSD.
- if getentropy() fails, we need to fall back to
"/dev/[u]random" approach.
Signed-off-by: Bayram Çiçek <bayram.cicek@libreoffice.org>
Change-Id: Id6a2629c06d641eb4e7cf3991de4036d2f7b346e
problem:
before this patch innert textarea svg was not updated after changing text,
it was static based on first selection of textbox/shape,
to update the textarea we needed to unselect and reselect shape/textbox
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I11ceaf76867cecf5a356149d2072181e9f10b86e
<timar> net/clientnb.cpp:117:10: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
<timar> 117 | std::shared_ptr<WebSocket> getWebSocket()
<timar> | ^~~~~~~~~~
<timar> net/clientnb.cpp:38:1: note: ‘std::shared_ptr’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
IWYU agrees it's a missing include even if this builds for me by
accident.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I367ef3efcf2bdaf1b69c4bf21ef168e03807365c
When you are following someone and start typing, it's a pretty good
indication that you don't want to be following that person, particularly
because if they edit you will then be jumped over to where they are
We also need to stop unfollowAll from always rerendering the user list,
as when we rerendered on every keypress there was a noticable
performance degredation. Instead, we can make it only rerender when
we're following someone, which is a lot better.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I110ca74859b7cee03c6a58c87d3975275f29760d
so it will be also visible in notebookbar mode
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia311e3bff119b202b08b6ba04f75ad795d8a735c
in the past when JSON was generated from core it was needed...
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I862bd405f17bd102d9772b0f806aec8bfcca4ac8
so we will check desktop only which can pass
This change should be reverted after we fix problems
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Id34bf6446c7ea56fc8dd8ddf750abafd693c0aa1
It fails on triggerNewSVGForShapeInTheCenter()
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2693ea645a4103ecfd51db0405022764a0130d5a
Execute the 'prettier' command to check format code style.
Change-Id: I93e4a57e03d26627caa3b2c52ae44669a8723267
Signed-off-by: Henry Castro <hcastro@collabora.com>
The *.ts files in admin are transpiled typescript to *.js
so ignore the file to eslint again.
Change-Id: Icb5edbcc9d782562886c17453921979fd2dbdd2e
Signed-off-by: Henry Castro <hcastro@collabora.com>
cppunit-devel is not required for release build
nodejs is required, but may be provided by other means,
not by an rpm package.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: If761ef746559c9e002817f7a102191f5087001e2
- We specifically hide some section or elements in mobile view
- if we go level up or level down in mobile view, we should not change the state of those elements which already hidden using css rules
- this patch will cover that part of issue where we do not consider elements which are hidden by css rules
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I7ffd83c5b74987f74b7e327fd13775a81d02120d
- image path was wrongly assigned
- setImage method will do the work to set image path
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I765f0049d7d607926529df38a202b9ec923584b1
Useful to have a Unix socket-pair to communicate with
a forked process.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ic4ad1eee62b6d3b40a03bc8e59bce6e0e16efc28
Seems browsers start to ping servers on their websockets, so don't
warn about that.
We trim memory left and right in clients, that doesn't deserve a
warning either.
Change-Id: I7bdcc99d167a8df3c847a1893dee8cd9123250f2
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
- automatically handle html content
- fix dropdown cropped when close to the screen edge
and content is custom html (fixes#7578)
- automatically handle focus
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I3187971f47295d699a18dbf5b8dd129e3a809991
TODO: checked state for menu entries
TODO: accessibility, shortcuts
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I6dc96a4748fd69a75af8a64ed37e5dce24bd9830
Dropdowns are objects in the JS only so don't send
message to the server.
Dropdown is a simple list of entries (menu),
do not confuse it with popup which exists in the
core and message shoult be sent in that case.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iffcd6cac81608841dca969e979298e33182c6595
Have 3 paragraphs in Writer, insert an image in the middle with
(to-char) anchoring. Select all text, copy to trigger the complex copy
codepath. Insert the result to Wrtier, some "text/html" and a number
extra paragraphs appear before the result content in the past result.
Seems the root of the problem is that the clipboard format generated by
ChildSession::getClipboard() is 1) a mime type on its own line 2) size
3) real content; but we just skipped 1) and 2) in the past, but now this
doesn't work, presumably due to a change on the core side.
Fix the problem by just making the header check case-insensitive for
now.
Once I add a html+plain text mode here, I'll probably switch to properly
skipping the first two lines instead, since the plain text won't have a
well-known header to identify the content. No testcase, this complex
download codepath will be Firefox-only in the future, so not easy to
cover with cypress.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ia99e5325188e5a34b56962cf4e3e9b8287e267c0
4 seconds proves too short in some cases
and times out occassionally. 10 seconds
seems more reasonable.
Change-Id: Icede882355a66bf383ebdd87858f1ded77825c5f
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Coerce into an 8bit register to avoid masking - 2%.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I0d76cdde533ca6d67915e578351a68e1d22258ba
Avoids inadvertent non-optimization having an impact.
Change-Id: Ic548769e98f00d455f67ccd32d493f02b204a70f
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Also encapsulate png types more in Png.hpp
Change-Id: Ia0789405149cb00723f0da96d56eac7a30c2ef3f
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
We use [[maybe_unused]] to reduce explicit supression
especially under compile-time directives.
Change-Id: Ic5f3f3227a80efe52097cb35520d05b9cdaacb42
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Wait for doc kits or spare kit counts specifically. This removes the chance of
race conditions between waiting for doc kits to shutdown and the spare kit to
start back up.
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: If28da4b786d3e2b429acb5840dfcdb7bb5a3f948
Prettier is a code formatter for javascript/typescript. It's relatively
common to see complaints about style in pull requests or inconsistent
style getting in to Collabora Online. Also, without a formatter it's
harder for editors to automatically format code in sensible and
consistent ways
Prettier doesn't have many options, but those which it does have I have
set to the closest values to current behavior (e.g. single quotes) in
order to minimize unnecessary changes
This commit doesn't format all existing files. Doing so would cause
blames, cherry-picks and diffs to become much less useful. Instead, we
use browser/.beforeprettier to list all files that would need to be
changed, and this file is ignored. You are encouraged but not required
to set your editor's equivalent of 'editor.formatOnSaveMode' to only
format changed lines
This commit also does format of docstatefunctions.js, previously it did
not in to check that an incorrectly-formatted file could fail CI. Now it
does to make sure that formatting fixes the issue. This file was chosen
because it is very new and very small.
Change-Id: Ie6067f34aa658f887e149a08aebd0180b2354005
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Timed out retrying after 10050ms: `cy.click()` failed because this element: `<td id="tb_editbar_item_sidebar" style="" class="" valign="middle" title="Sidebar">...</td>`
is being covered by another element:
`<div class="w2ui-scroll-right" onmousedown="event.preventDefault()" onclick="var el=w2ui['editbar']; if (el) el.scroll('right');" style="display: block;"></div>`
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ifa8aa4e9229c3c909b7f118c008904a78d0cd38b
Currently translated at 99.5% (476 of 478 strings)
Translated using Weblate (German)
Currently translated at 99.5% (476 of 478 strings)
Co-authored-by: Andras Timar <andras.timar@collabora.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/de/
Translation: Collabora Online/Help
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I8ec860efbb9d8e198e1bc453108fa53e47c5f28f
Currently the current selection is always requested as HTML by the
browser, and then we ask the browser to convert it to plain text.
The problem is that e.g. Writer can produce much better plain text from
its model, compared to the plain text by the browser, e.g. bullet
characters for bullet points.
Fix the problem by:
- CanvasTileLayer.js, _onTextSelectionMsg(): requesting both HTML and
plain text. Use ',' as a separator, as that's already established,
e.g. the HTTP Accept header does that already
- Switching the textselectioncontent protocol message from just HTML to
JSON that contains both HTML and plain text. This is produced in
ChildSession::getTextSelection() and parsed in CanvasTileLayer.js,
_onMessage()
- Clipboard.js, setTextSelectionHTML(): allowing setting both HTML and
plain text.
- ClientSession::postProcessCopyPayload(): knowing if the content to be
processed is HTML-in-JSON or just HTML, do additional escaping in the
JSON / textselectioncontent case, but leave the other clipboardcontent
case unchanged.
So far this only handles the simple case, the behavior for complex
selections are left unchanged for now. The payload is also unchanged
when a single format is requested, as many tests depend on test.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I2fe1378a8d50b7901ac9e808eb78858cd8ff8575
problem:
when pressed page up/down button inside the annotation textarea,
entire view is forcefully pushed upwards to put the cursor at the top of view.
This is a chrome bug reported at: https://issues.chromium.org/issues/41417806
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I30048374e7b8330cd8c865010e3b4237d355391e
This can rewinddir on a persistently open file descriptor
pointed at /proc/self/task opened before dropping privileges.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ie5a5948300c46c8c6a65f7f7eda3a60a9d5cf9c3
It requires to add `Notify: true` in the Action_Export
postmessage. Result will be sent with `Action_Save_Resp`
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iaeee2e22bf1a2ae934eb657116c1878cb6ed50f6
Replace "The server encountered a xxx error while parsing
the yyy command." with more informative "Document cannot
be exported. Please try again." on export issues.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2683720d043713af95ccc61d46c3da09e6f5092b
StateRecorder.hpp split from ChildSession.cpp
KitWebSocketHandler.[ch]pp split from Kit.cpp.
ThreadPool.hpp split from RenderTiles.hpp
Expose headers for KitSocketPoll and Document
at the same time.
Not clear we need the DocumentManagerInterface anymore.
Conditionally compile out Document::createSession for unittest
dependency breaking, and avoid Rlimit::handleSetrlimitCommand
likewise.
Make makePropertyValue a private method of Kit.cpp.
clang-format new files.
Change-Id: I47a1d6afe20165f156b477a931b94c916cff4b9d
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
There are now two .avatar-img elements after recent user list changes
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Ia229422b4dc3e90ede240e36927b4615091cb97d
You should be able to drag part of a JSDialog offscreen, so long as you
are also dragging another part of them onscreen. This allows you to
access the whole jsdialog even if you have a small device, which
otherwise would not be possible.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I243124bfdc1afbf8e7da84f5932493540beb12b4
When trying to drag a jsdialog offscreen, we previously froze the
dialog. This was frustrating if you dragged a jsdialog to the edge of
the screen, because you then couldn't continue to drag it at all without
moving it away from the edge of the screen, even if the direction you
tried to drag it would not move it offscreen.
An example is if I dragged a jsdialog to the right edge of the screen,
it would be harder to drag it up as it would "stick" to the edge. I
would expect the upwards component of the movement to be honored, even
if the rightwards component could not be.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I865d4ab4833016228c63bab434eb0c6281fed03c
Fix race condition in testSaveOnDisconnect by waiting for kit process to
stop instead of just counting total kit processes
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I6bda6b114070123a1366bc04eac1873f19928ac0
Noticed in some k8s deployments where alias groups were
defined with port. For lok_allow we need only host name.
Avoid adding empty hosts.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic9cd574f9b6faa3c382229a853883a128e9b0620
- move freeze options from layput tab to view tab
- options should be consistent for both compact and tabed view
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I9baed9ca50ddfb963dfd555e9fec42b594321902
problem:
when we turn off the option to show the resolved comments,
author image was not hidden and stuck on screen which can't be interacted or scrolled
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Id0fb30c787b6e8c288df1142b9f882b7633f3dc9
The URLSearchParams() function was confused in the proxy.php
case, because the global.location.search contained two '?' marks,
like ?req=/browser/dist/cool.html?WOPISrc=...&lang=..&etc...
In the normal case the string started with ?WOPISrc=
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I566935656be6622d698ea2ba3c949455877526f6
We also create a new sub-directory for WOPI
code, which helps better organize things and
isolate it from Mobile App builds, which have
no need for it.
Change-Id: Id6dbbd450f35c9c0eb8460de12330cff2e3e5576
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
.editorconfig is "a file format for defining coding styles" which is
understood by various editors. It can allow for, for example, vscode to
automatically configure whether to use tabs or spaces.
I'm adding it both because my editor seems to incorrectly assume the
Javascript in the project should use spaces, as well as to be a precursor
for adding prettier in a later commit. I've split it off from prettier as
it shouldn't have an effect on the build so should be able to be merged
before CI is able to run on the prettier build.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Id0b1da1388a1fb2706d64623a6d8f35f9a1c605f
Do not send the command ".uno:DeletePrintArea" to server side,
it disables printing range feature.
Change-Id: I8bb1ec9ab01793e6bf3b74b8cb121a5fbad3b8e2
Signed-off-by: Henry Castro <hcastro@collabora.com>
Before this commit, the icon that is placed in the protected spreadsheet's tab
was too big and bulky. Opt for a smaller and more minimal version of
that so it balances better with the accompanying spreadsheet's name.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I9ab688262ddaed21a067b904f51569ee87355298
With cbf452b03d all non protected
spreadsheet tabs have their name (tab label) aligned to the top.
- Fix it but making sure we align to the middle on both coordinates
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I24cb61d691f2e9e2b4399a5201dc387d32f45eb2
Currently translated at 100.0% (478 of 478 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (576 of 576 strings)
Translated using Weblate (Turkish)
Currently translated at 98.3% (470 of 478 strings)
Translated using Weblate (Turkish)
Currently translated at 99.8% (575 of 576 strings)
Co-authored-by: Ayhan Yalçınsoy <ayhanyalcinsoy@pisilinux.org>
Co-authored-by: PhD. Ayhan YALÇINSOY <ayhanyalcinsoy@pisilinux.org>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/tr/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/tr/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I5d3bcfcef9e253af9c8e99f15e7f561b25b94c96
Currently translated at 100.0% (478 of 478 strings)
Translated using Weblate (Slovenian)
Currently translated at 100.0% (576 of 576 strings)
Co-authored-by: Martin Srebotnjak <miles@filmsi.net>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/sl/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/sl/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I7ed0ab34193822113d31a929f6c824195bf5c717
- type="search" for a11y
- spellcheck=false" to avoid red underlines
- localizable placeholder is added programmatically from 34bf81f146/browser/src/control/Toolbar.js (L552)
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I695990a25ccb00821a16738a9388a51001199112
it was introduced in 13bc532
and it was removed from use in 2f77b3a
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Iec401a9505491fe69196cdb1e7192fa499d3d38f
We no longer send LOOL-WOPI headers, unless
the configuration specifically flags for
legacy servers. But we always send COOL-WOPI
even to legacy servers, to help them upgrade
seamlessly.
Change-Id: Ifc919ed8f6665cd8f846117ef4e8b7ef09fbd563
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
problem:
if a textbox/shape is being edited and try to move it while still in editing,
it was not animated, so user gets illusion that shape was not moved,
but in fact it moved and directly appears at the last moved position without animation
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I830e368e162b3b38edea0d9240cf82800fa8080a
problem:
when try to insert comment(inside text with existing comment) and comment field is empty,
click on some other comment(which is on same text), it will cause an empty comment insertion in DOM
which can not be removed until doc reload.
This subsequently prevented new comment insertion.
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I29294dcfbbaddddaa768e08b47b855b3e8c7f454
This will be a class for storing keyboard shortcuts in
a unified way. We can easily define shortcuts for different
languages so we don't have to write long if-statements
which can cause problems if done not very carefully.
Added tests protecting from regressions.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4dfa2d757eab4ecc1f21279e68d1ee97ae261dc5
This prevent us from requesting sheet geometry we
already have + we block a bug with jumping view.
Steps to reproduce:
1. open spreadsheet with 2 tabs
2. switch to tab 2
3. click again on tab 2
4. scroll up with mouse wheel
Result: after some time we jumped back (every time we scrolled)
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib0b0a5b7149bd2b891902a5af379eba75d971110
This caused problems with view jumping when user
clicked on the tab he already was on.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I7b6a2f833374cdeb1bc3d2d6b41929bec622b370
Protect us from regressions.
We had issues with jumping view in calc, it was related to
switching tabs (not all was visible in the UI).
One case was repeated selection of the same tab.
Second one was using a keyboard shortcut to select multiple
sheets (ctrl + shift + page up/down).
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Icda723ee51b1a4aa8876208d52b4739ca380bb78
This is a regression from 74a4484e "calc: on tab switching document
view can be restored to a wrong position"
Moreover the passed index was wrong when tab is dragged on the right
wrt to current tab position. Now the correct zero based index is
always computed.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I7395773da5a846ce61d8508bbd1d6e2e833d4511
Also dump a list of shared libraries by reference count in
unshared pages.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Iecc281b27059c2f051b07fea29ab27be7d5703c0
Previously used combobox dropdown is online-only so it
will not block editing.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: If6bc092e8bc32ef78c63e8e7cf76922682bc0f19
- it should cover cases like all pop dialogs should be closed for idle mode
- cell should be editable after we re-activate the screen
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I34c681ebffdc0107f8787ddc0ad16e5fa35c2f0c
- All dialogs should be closed if document become idle
- There are 2 cases for which all dialogs are being closed before socket closed or before screen dim
1. document idle : we disconnect from server
2. view idle: only screen dim, server is still connected
To test:
- add auto filter in calc sheet
- open autofilter popup
- wait for document to become idle
Note: change value of `idle_timeout_secs` in coolwsd.xml to test
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: If76f03d830b8b3744fd2b54d131c5fa85a024c5c
Using same callback caused a regression about showing tooltip while
reviewing a change in writer. So we have to use a special message for
function usage tooltip.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I6f769a43af6a01ed8e13abfd9c35a57ccd47c1ac
Close confirm overwrite dialog after pressing insert
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I4dacb731c70b1bfd9bcbc2134f6e3cd7e242d468
If the document reloads while the user is on an input field, do not
take the focus away to the document.
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: If5e97a666ddef6e7c28a30c8bd8ef8bca5f5b336
Previously the improvements to following were limited to only following
different users. We have another way to follow people, though, the
button labelled "always follow the editor".
We can repurpose the existing following chip to support this option by
changing the top text to say you are following the editor rather than
naming a specific user.
Additionally, to avoid inconsistencies with the "following" label on
users it's better to check which user we are following when rendering
the user list rather than keeping track via a "following" boolean on
each user. This boolean was getting out of sync when using the following
the editor feature.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I2b76c1b1e4724cc2aaddbf8fd10b6c4e9155a169
Previously, avatars did not have any alt text. This is bad for, for
example, screen readers. By using a username as the alt text, we can
improve accessibility
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ie52b09d57db4b8a7c8cf88c89c277f891f422bcc
Previously we were using innerHTML to insert user-generated content
(usernames) into the document. While we were sanitizing these correctly,
it was hard to tell that we were and required a level of knowledge about
what was kept where (e.g. were we getting the usernames from the
sanitized cache or from an unsanitized event?)
By replacing innerHTML with innerText, this commit removes the risk of
someone making a mistake like using the wrong variable and introducing
XSS. It also makes the code more obviously secure
Unfortunately, w2overlay doesn't support using any property that is not
"html" to provide a message, so we can't directly use innerText. For now
I'll move the sanitization process directly above where we set the
message to make it obvious, but for this reason (and typescript) we
should consider replacing w2overlay in the near future
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: If935dc2d765dd5e345ce760cad88386ea98d97b4
Header avatars and user list avatars are rerendered whenever a new user
joins, which previously caused a flash as we rerendered the image
element (and refetched it from our cache, etc.).
By reusing the same avatar elements, so long as we can be sure to never
add them to the DOM multiple times (as the spec then requires the
browser remove it from the previous place, see
https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild), we
can prevent the browser from recreating the img and reloading the
avatar image.
In my testing, applying this to both the avatar previews and the user
popup list improved my experience with a high amount of users under
system load a fair amount. This probably makes little difference if
your system is able to quickly recreate/load the user elements, say if
you have a small number of users in your document, the profile images
should be cached by the browser anyway so unless you manually disable
cache this probably doesn't optimize away any downloads of images from
the server
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I0c28f94d815184c7a216ee222a95d76aa65d2592
Previously the userlist and following worked, but were out-of-place
with the rest of the application. This was particularly noticable on
hover where I used a changing border color and text decoration rather
than the usual background change. Additionally, as I was using border
colors to indicate hover rather than a background change this caused
contrast issues on the light theme.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I79373227d6efd397691038ab290a85b2913e0fad
Previously, following was done by adding a "selected user" class in the
list. This is great, except we are now recreating users at several
points, which loses any classes that we don't know about. This commit
adds a new "following" property to user and when users are created uses
it to inform us if the class should be added
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ia8e03ad75376a39e36911d3a24cb293d2cc15aa8
This makes it much easier to unfollow users, as you don't have to open
the menu to do so anymore. To make sure you know about this feature, I
opted to show "Click to stop following" text below the "Following" text
on the chip, but this is not ideal as it forces us to make the text
rather small. More testing is needed, particularly with longer names, to
make sure this is alright.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I98123dbe2d81da9aea899b0e33d2798f10f475dd
The chip displays beside the user list, and has information about who
you are following. It displays in the color of the user you're
following, and connects to the already displayed user avatar.
This chip is the first indicator we have that you are following someone
when you are not in the user list popup. This is important, because it
is easy to forget that you're following someone and be surprised when
you are jumped across the document to wherever they are.
An alternative that was considered was adding a border around the view
in a similar way to Figma's following border, and adding a status box
to the document view in a similar way to Visual Studio Code Live Share's
following notification, however it was decided that these could be
detrimental to people who were zoomed in a lot, and particularly Figma's
border could be confused for a document border.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I112fa572bdae8a7aa43493e0237c7dfae8570294
This will allow us to more clearly indicate stuff in the space to the
left of the avatars, as we'll be able to reference the avatar which is
on the top of the stack.
An example would be a "you are following" chip, which I intend to
implement next, as that could join with the user on the top (who is the
user you are following)
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I63225acb8bd37420ee4fe69bf1d675a18a0a0507
Previously this would do nothing (as it tried to follow the user
again). This was bad, as it was a struggle to figure out how to
unfollow someone. Now clicking on the followed user again unfollows
them, which mirrors the functionality in other apps such as Figma.
Happily, as the previous action appeared as a no-op to the user, this
change shouldn't break anyone's existing workflows for Collabora Online
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Idf4a8b0e94d8720f24c3c4d042a3421f67d22dba
This commit makes 3 changes to the user list order
Moving the followed user to the top of the list, above you:
- Moving the followed user to the top continues my effort to move the
most important information to the top of the user list. It's crucial
to see who you're following, and I have a planned feature to allow you
to click to unfollow them too. Moving the users to the top of the list
will make this planned feature easier to reach
- Additionally, this will let us use the left side of the avatar list to
add extra context to the followed user, such as a chip which says
their name, while making it clear which user we're talking about.
Moving readonly users to the bottom of the list (excepting you if you
are readonly):
- This commit also moves readonly users to the bottom of the user list,
as they are generally not as important as regular, editing users.
Flipping all other users so users who joined more recently are at the
top:
- This gives a bit more feedback when a user joins, as in addition to
the popup in the top left corner of the screen you are also able to
see their avatar in the list
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ibd3f983590726d26418e40dbc6e28695ac2607e6
The user list is currently haphazardly ordered, which makes it hard to
find yourself in the list. This is especially important as unfollowing
someone currently requires you to press on yourself (although I'm
making changes so this will no longer be the case).
This commit also lays part of the groundwork for sorting the user you
are following at the top of the list, and readonly users at the bottom.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I849162dec601959a60ef57ec2e8bc1235f74782d
This stops us from iterating through dom elements to modify them
directly, which should make it easier for us to reorder them or change
their state at relevant points. Additionally, using a Map rather than a
list will make it easier to address users by their view ID which will
help modify specific users (e.g. for following status)
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I2e6ca67bfde2519e13a66a25e10d50bb02a88700
I'm working on a set of patches to improve the userlist/following UI in
Collabora Online. Using typescript will allow me to be more certain
about the code I'm writing and make my code easier for other people to
understand.
Additionally, as I'm about to make significant changes to this file,
updating it to typescript now won't even damage the ability to blame too
much!
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Iccf64a01a465d895cbc1c24ad107f85665b5fbf3
Previously we were declaring $ as "any" but a type package for jquery
exists. Using it will provide us type definitions for jquery throughout
the project. This means we need to remove our previous definitions and
install the package
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Id54b3c6c9a4ab86897296fe9ba26570db8697207
Exact positions have changed between core 23.05 and core 24.04.
Allowed for a range because failures report different positions
on different machines.
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Iec8024a4e2c8d310748c3b9f52dcb9b325d1529b
Move selection from beforeAll to each testpoint
Remove clickOnIdle
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I1ef87e7df34319c4a1307695ffaa0011b6dbb4cd
Which is probably the majority use-case and shouldn't need access to the
system clipboard, so works even without keyboard and in Firefox.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Id2fc79950d40c76223b052e01267b492f732a9ad
The real content is inserted before the label, so the label can be
hidden to avoid this not needed spacing.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I28a1101fc96b6e2cdb389b56ca3a5114092c92db
The intention is to communicate that the user has to press a key,
otherwise we won't read the clipboard.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ieee44192c79f4181b3ff8be723cee49d37092e99
Make the wording more explicit to communicate what will be cancelled.
This is not to be backported, as it's a new l10n string.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I9e337e06582b6839f713fc6f08da65292f64ddb1
problem:
if writer->insert tab-> insert comment button is clicked,
if button is clicked from icon is works fine,
but if button is clicked on label event is triggered twice,
which caused js errors
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I3956083b02204733abc3543c73f6019d3a3b4c67
In some cases the WOPISrc is inconsistently
encoded. So now we decode before comparing.
Also, improve related log entries.
Change-Id: Ifd6cca76c91a34761dd0ce8f6d78c3af5d47fd43
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This reverts commit c69e14a5dd.
The above commits causes document loading in the iOS app to
always fail. Even the animated loading graphic never appears.
I don't know why removing that .js file causes this behavior,
but I did see the following in the trace messages in Xcode.
To Online: load url=null accessibilityState=false lang=en-US
It appears that the JS code is sending a null URL to load.
Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: I7af391c4a4fb0d3d363b7023a27d4fcf92f7a4b5
problem:
when tracked change show is off, and reply is deleted,
it will not be visible so but count shows it, it may
cause counfusion to user
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I730ebb1b5909b3db75611b5b6d60498d0b796c58
Currently translated at 100.0% (576 of 576 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (576 of 576 strings)
Translated using Weblate (Portuguese)
Currently translated at 95.6% (551 of 576 strings)
Translated using Weblate (Portuguese)
Currently translated at 93.7% (540 of 576 strings)
Co-authored-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Co-authored-by: Pedro Silva <pedro.silva@collabora.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt_BR/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I3c2f6e1a65c77d8df2c348f3b6e57ce999acbacd
- introduced in fe919ac2af
- the idea was to reload the page when scale down happens to refresh the UI and
remove the gap between the cards
- but on reloading the page it might happen pod with which the current routeToken on client is associated gets killed
so the indirection_server couldn't authenticate it.
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: I5d1f74352207c97def132c4437d9d297fd63dbb4
now that we will typically init the document theme, etc. from the
users last used settings, the current rendering state is likely the one
that the user wants to use.
The browser-side throws away all tiles, etc on getting a
canonidalidchange, so get the current document renderering state to
describe this initial state so later LOK_CALLBACK_VIEW_RENDER_STATE
events can be compared to this initial state and only emit
canonidalidchange if there is a need.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I2902ff4e143f432755c335e1225149207fafdfc3
This spec was released 7 years ago, and allows e.g. async/await, which
can result in more readable code in some cases.
There is danger that we return to the main loop too easily using this
construct, so no suggestion to rewrite any of the existing code to use
this, as that can have side effects on how e.g. we process incoming
websocket messages.
Do use await at a single place to make sure await can be indeed used.
Thanks Hubert to notice that the await-using function itself has to be
async, the error message from eslint isn't too clear in that case.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I05b17658fcfab3d20a7e1e8aedf733ef6c7764f5
We only need the client WebSocket when creating
a new ClientSession. As such, we can spawn the Kit,
create a new thread, and even download the document
before the said WebSocket is connected.
At this point we only refactor the createDocBroker
helper.
Change-Id: I1bb57f6f0f2e89d49266cb87f152970a47e1eecf
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Support parallel CheckFileInfo upon serving
cool.html. This makes loading documents faster
from the user's perspective by parallelizing
CheckFileInfo and, later, DocBroker creation
and document downloading.
Change-Id: I838a19022517196ee2b459991a542ed9ef323e48
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This will help construct RequestDetails while
serving cool.html to do parallel-loading.
Change-Id: I976bda80fb62a3a61b161c7094aadee1a8d52851
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This makes it easier to support even earlier use
of RequestVettingStation, when cool.html is served.
Change-Id: I206f5f593a33806c24c6ed1e126d4cae5500f405
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This replaces the synchronous loading logic
with the new asynchronous one.
Change-Id: I20fd7903cffbbd7c524d8051295113439ef75d5b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Use force click on buttons instead of scrolling the statusbar to make
them visible
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Ib6e7eadcfb02f47e7bd4b44c71f44387f0b19168
With the inclusion of the searching (actually filtering) input field
the dialog would change width mid typing. Example: 1. open dialog: the
width would be x; 2 type something in the search box: the width would
be < x. Better to set a fixed width so if the biggest element is
hidden the dialog doesn't change in size.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I6662433388efa66812317f60a4e0a6bf36e5e98a
what: jquery ui-tooltip visible when user hovers buttons in the
notebookbar on when user starts a formula in calc (helpful floating
tooltip appears)
Before this commit, ui-tooltip was being set with a harsh
shadow making it more of a main element than a simple tooltip. Best to
don't inherit that strong shadow from .ui-widget-shadow (used in
overlays) and instead set a new one just for tooltip elements.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ibf3ad525f97decc1d82ca7172ca1fb2bb7c1a6f2
The baseline is EL7, and systemd is assumed.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ibc43996e8b23007876ee8fa0d7dcf8478b217aa0
If the user doesn't read the text of the dialog, make it clear that
pressing the button will cancel the process, this is not a warning
dialog to be just ignored.
This is a minimal fix that introduces no new l10n strings.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ie68ce5bbfe9f9c8d600f6eadfef63301728984b5
- we need to add display blok or table-row according to section tag
- add generic function to show or hide any section or sub section
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ib0996842a0c3703a6daf0754e739d4d5e00621cc
- Select section based on dialog type ( either "help-content" or "Keyboard-shortcut-content" )
- There are some section specific to doctype so only consider the section based on current doctype
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I56533b9cea0ad70b445ae864db23256a10ee27d7
Use force click on buttons instead of scrolling the statusbar to make
them visible
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I58f9571dd31d775cadd586f49a545bbc2198471c
- Do not use transalated string `UNDO`` and `REDO` as UNO command
- added action prop to handle above change
To test
- open document in non-english format
- make some changes in the document
- open document repair
- try to perform REDO or UNDO ops
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ia98270b7623634fe4315988287445f14467df3f9
Should be fully supported on compilers now.
Except leave this workaround in place for now:
b30757417b
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I6e19ec034b3c64e66f5bf5ff1f436f94514fabd0
- Increase contrast on matched content (when user types something in
the search input field)
- Fix it for dark mode
- It's not worth it to try to highlight specific subsections. It can
look confusing and misleading (sometimes the subsection has no
importance unless the context is taken into account, it could be
interesting if we were marking it in a word by word bassis which is
not the case).
- Better to just style/mark the whole mainSection instead
- Make the overall style look different when the search box has text
so, user can distinguish when he is searching vs not searching. This
also helps to understand that the in one context sections are being
hidden, that we are not in presence of the whole help documentation
but just some sections.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I2af72d36f426d23b239d54464860c6368a65e597
Refrain from using hard coded dark text, use instead css var that
changes according to the light/dark mode.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I7343c422a06a7415406d6d476adade77810c68c5
- animation on input field if search term is not matched with any section content
- add auto focus in input field on dialog open
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ie0415affeeb59a2a785bf5ffd9f32f1e98471958
Replace a few cases of Util::toString(...), too.
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I53c5dbbdf2f60710e94add9dd137aa9becb7bd3e
It's not used, since no external storage
is supported in the apps.
Change-Id: I5cf765ef3cb38dcb396318f6b9ace56bf4e127a2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This moves ClientRequestDispatcher and all
its direct exclusive dependencies to its
own file and adjusts formatting.
No functional changes were performed,
although namespaces were restored and
other minor changes were done for
consistency.
The resulting file is still rather large
at around 2000 lines, but that makes
COOLWSD.cpp smaller by about 30% now.
Change-Id: I59bcd997ad08702ce7029c6791095e75ad9b23b0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
In calc when a tab is moved to a new position or a sheet is inserted
or deleted, saved positions in SheetSwitchViewRestore which are used
to restore the correct document.
position when user switches back to a tab are no more valid.
In fact the internal map: sheet index -> sheet position becomes wrong.
This patch takes care to update such internal map when one of the
listed event occurs.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Ia4587b14179a35ff369d1f030657c4e5c64f5715
From CanvasTileLayer._saveMessageForReplay description:
"We will not get some messages (with coordinates) from core when zoom
changes because print-twips coordinates are zoom-invariant. So we need
to remember the last version of them and replay, when zoom is changed.
In calc we need to replay the messages when sheet-geometry changes
too. This is because it is possible for the updated print-twips
messages to arrive before the sheet-geometry update message arrives."
The problem is that after switching to a new tab it could occur that
some of these stored messages are replayed on the new sheet even if
they were related to the previous one.
So for instance if in the old tab there is a cell selection we could
end up try to select such cells in the new sheet too, and even if such
selection is successively cleared by further message specific for the
new sheet, such message replaya was causing an unexpected document
scroll.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I63995aaa51c25216abd246551fbd2ec437a3f6de
- send new scroll position only on change
- this reduces a lot network traffic and makes
it more quick
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ifd4f3ecca2e826c3350d19e377cc265dbde563fe
Add a smoother scroll taking into account the row height of the data to
adapt the scroll height accordingly.
Signed-off-by: Méven Car <meven.car@collabora.com>
Change-Id: I96cf56367b80ca22f75b074e32ebff97eedeb0ab
This was introduced by backport #8271 of the sheet protection
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: I07a9fd428b11042ce191a5c7a48d53400253c445
Parse jsdialog responses, and send the right dialog id
to click items on.
Adapt to unexpected multiple updates for the corrupted document
warning dialog on load.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I0f934cdc60b2204afc493cf367f98a9cfa0aa6c0
Kit's GlobalCallback has an alarming habit of enabling
inputprocessing during a jsdialog popup occuring during
load, so use a stronger heuristic to avoid sending errors.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I4a57685dcf63b4a3607c894e80a13e27bffaece5
Removing the prior apparently fragile approach of summing
view-ids.
Instead check for lack of duplicate view-ids, and still
load & close lots of views in random orders.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ibcefc54597cc4e37a9728dab2f32002620b01c4c
like we do for the spelling setting, so we have the document in the
desired state early before any rendering, dropping the early full
document invalidations during initial setup
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I6b762c95fd4c00c7da04cf89f7bbeef4bc57375d
Adapt checks for empty or non-empty timestamps so that we can
match previous failures, and ensure coolwsd is sending us the
right override state.
Change-Id: I604e3aa0315753ae02e5a6e4173d6b3b3ffa3b3e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Quite possibly we did successfully up-load, or at least our timestamp
may not match, but we cannot be sure enough to warn the user in this
case. We cannot reliably get notified of remote alteration on the
server of files, so wait until a more succesful save or new user
join to get an improved timestamp.
Change-Id: I5c8124ed74ba5c26371768ac778b9670282c87a3
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
config.h should be included as the 1st line in each source file.
It should not be included in headers.
config_version.h which changes on every commit should not be
included widely - so remove it from the HttpRequest heeader to
save tinderbox's ccache.
Fetch version info from helper methods rather than in-lining via
defines, to better encapsulate.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: If449a36f1ac61940f04d70d5f4180db389d9b4c4
Limit the workaround for "no copy event is emitted by hitting CTRL+C/X
with no selection" to Firefox version from 117 to 120.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I00d3addc0330862bf07eebb8d030d1156fc6e321
On the client side, when setting up the socket, we encode beforehand, so there's no need to encode it again.
Signed-off-by: codewithvk <vivek.javiya@collabora.com>
Change-Id: I09e59c6fdda4c93de5dd36fca5023ac88926c4d4
Fixes and gives more details for debugging in case of:
INCOMING: viewinfo: [{"id":3,"userid":"admin","username":"admin","userextrainfo":{"avatar":"http://.../avatar/admin/64","is_admin":true},"readonly":"0","color":0}] cool.html:323:37
Exception TypeError: this.map._viewInfo[this.map._docLayer._viewId] is undefined emitting event [object Object] onUpdateViews@http://.....:9980/browser/08e0fd2e1b/src/control/Control.UIManager.js:823:31
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I915f4d6e235426d1ae1d12c64629a6e250c16766
- separator should treated as UI not any object value
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ie6182dda40b7fd3c0d1ea87c5df78a46239677ed
- when saving the json sent to client was wrong
Signed-off-by: Rashesh Padia <rashesh.padia@collabora.com>
Change-Id: Ib5735dcf81db4257256a909fa7dface184f1c53d
problem:
when titles are long they go beyond dialog area and are not scrollable,
this hides the date and author details which can not be scrolled either
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Iae8a5affb870faff0639ac9083e118cec40debd0
If the notebookbar's paste or paste special button is pressed and
Chrome's clipboard permisson popup is rejected, then nothing happened,
while Firefox case was showing a more helpful popup, explaining the
problem.
This has two sides: error handling should be better and also the error
should not happen in the first place. The error can also happen when the
<iframe> is not set up correctly, but that's to be handled on the
nextcloud side.
When there *is* an error, improve error handling by restoring the
codepath that matches Firefox:
- extract the rest of the code after invoking the async clipboard read
in _execCopyCutPaste() to a new _afterCopyCutPaste()
- paste case: invoke _afterCopyCutPaste() when the paste fails
- paste special case: only pretend we're in paste special mode if the
success fallback is called
- if the failure callback is called, then invoke
_openPasteSpecialPopup()
With this, the "has async clipboard, but the permission request
rejected" and the "don't have async clipboard" codepath matches.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I727f00a1cf94dd1837e15e60410e1798de5daecc
In calc all comments are hidden and only shown when
mouse hovers the cell to which the comment is attached.
Anchor was always a wrong value so when we were at
some more distant position - it always jumped to random
place on hover.
This is regression from:
commit 6550e713c4
annotation: calc scroll vertical to make selected comment visible
which was followup for:
commit 2bf93e34c3
annotation: writer scroll to make selected comment visible
We need to compare the same type of positions. Now all the
values will be in core pixels and methods have comment which
indicates that.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I8e86a31087ff491ace92f407b166788cea73b25a
This fixes a regression where `framed.doc.html` wouldn't load.
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: I57b4a617755be4615ec6ec734f6e084d57eaebce
problem:
in some types of items fields may be named differently,
leading to fields not being found and empty dialog entries.
currently only itemType 'case' was culprit but in future there maybe some other types too
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I24b58dc474a555b3f26c34bb4ae0b144c06abc57
but it gets computed anyway, move it so its only called if actually
needed
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I187540df6def6b4f92199e273665e04ed493035a
This is consistent with LibreOffice: you can't delete nor rename
a protected sheet. It did nothing already.
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: I81e91f0cddf8b0cf6004f1668cb996b7cd0ba8e4
This set the CSS class 'spreadsheet-tab-protected' on the sheet tab.
Requires LOKit change https://gerrit.libreoffice.org/c/core/+/163325
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: If199b36ba593c5e603d017346969360b6191fe5b
Don't show grey border for labels and similar widgets...
Now we have "disabled" property on the root container of
every widget. We should style disabled state based on that.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I9e49783e8905a4c36b0010fa19d5feb869151e77
Update checkbox state on jsdialog action.
To allow click handler use it's current state not
initial data.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I95796771a1347c78a9c5e1983e3b0af61a236bb2
- move listener watching disabled state to separate file
- use also for listboxes, comboboxes, spinfields
- handle state in menubutton
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I841413f17abd6398a7e82496c3f20bdc52ab9514
Invalidate tile preview when canonical view id
changes.
Change-Id: I62d2e20946ec863ceb71014bb0216675316a658b
Signed-off-by: Henry Castro <hcastro@collabora.com>
1) Load a document with a large number of tabs
2) The last tab was selected
Change-Id: I0326bf2e374dddd7e075ea5806e5aefe5f598611
Signed-off-by: Henry Castro <hcastro@collabora.com>
- unify desktop and mobile toolbox code
- toolbox should apply disabled state on child nodes
- this is needed to handle disable action, previously
we received JSON for complete widget
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I018d7505a383ec45c9260f3629daaa9771579995
and default printer. In typical deployment these should be effectively
no no-op, so mostly aligns debugging env with deployment env so whatever
printer happens to be installed locally has no effect.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I09651d9af2de9817d4d278d25937c9ce0dc87352
problem:
tracked comments deletion was not reflected with accept/reject all changes
implementation explaination:
we have different implementation for accept and reject all changes,
due to fact when we reject the changes those elements already exists in DOM,
we can mark them as rejected and modify them.
while on the other hand with accepting change DOM elements need to rearranged.
i.e: if comments are deleted while being tracked, and we accept that changes,
comment needs to be removed from DOM and if we rejected that change we just need to remove CSS class.
This implementation takes care of cases when comments are being deleted, other cases of addition or
modification works usually
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I0964fbd220f450cb144a115e8203250467e7edae
Rename overlayData to _overlayData
Tools clear their data on remove
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: If0f17c4d18b683247a15f1b880dd7c0e373809fc
Merge tile update data tracked in several places into one tool
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Iabf63ca30795d8791894e575fc631ccc9f676183
Rename variables and functions
Move server ping to separate tool
Fix keypress detection for timing
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I15efed25ccacac19e6e96fdff767d332e8cc5fcd
Rename and reduce scope of variable associated with
tile invalidations debug tool
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I3e22d69e9c5867d1194a42520b35231e20b1ca01
Currently translated at 100.0% (573 of 573 strings)
Translated using Weblate (Welsh)
Currently translated at 100.0% (22 of 22 strings)
Translated using Weblate (Welsh)
Currently translated at 99.3% (569 of 573 strings)
Translated using Weblate (Welsh)
Currently translated at 59.0% (13 of 22 strings)
Translated using Weblate (Welsh)
Currently translated at 100.0% (110 of 110 strings)
Co-authored-by: Rhoslyn Prys <rprys@posteo.net>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-app/cy/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-lib/cy/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/cy/
Translation: Collabora Online/Android app
Translation: Collabora Online/Android lib
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I1fd5c876897b291e9ec7ff035f480edde9188c3d
This separates error-reporting to the client
through the WebSocket from the actual logic
of finding or creating a DocBroker.
This should be useful in creating a DocBroker
without having the client's WebSocket.
Change-Id: I66fc8ac09264fcbdb79ddf62867b8551a72929d6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This excludes Wopi handling (as much as possible)
from mobile builds.
Change-Id: I4abb00f02e77b5d89d56ced49ce19a37ae93c13e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
For some reason, the exoticlocale test takes
significantly longer to load. It often times
out when the CPU throttles or when it's
too loaded. Extending the timeout eliminates
the issue for me (no timeout over 175 runs).
Change-Id: I07cb099776af38206c0567f603cb6cc424eb0b93
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We use this for the richdocumentscode case, but it is more
generally useful, this should be a pure re-factor.
Change-Id: I3a7f09d3da902a85dc2b362f7a160f07c90b97c6
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
The libera.chat matrix bridge shut down a while ago, so links to our
room on matrix load forever. Additionally, we use matrix rather than the
IRC room so we should not be advertising it when they will only need to
be redirected to the right place if they join.
I run a matrix homeserver (clicks.codes) and have set up a room address
on there. By telling people this room address instead of the libera.chat
one they can join the existing room even though libera.chat is not
hosting matrix.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I8a4224f1a856e7295325196f1b1a80f860ed7962
Extract "splits section" tool
It doesn't seem to do anything though
Also minor edits to "tile pixel grid section" tool
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I008acc087e99d83225c1ba3184743e6e5a60e283
We should always have an encoded WOPISrc.
We add detection logic to make sure
that all URIs that contain WOPISrc have
it encoded properly. We do this by
comparing the decoded WOPISrc with
the original URI.
Change-Id: Ia0c2a79b009ce105321ad35db3d4f81006e81cb3
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
When a comment is deleted while tracking is on, we need to show it if showChanges is also on.
This PR improves the handling of tracked changes for comments.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I2f6956fa18504995f91e6e1c0fa3d633f4317f5c
Print full test name in beforeEach and afterEach
Hide xhr requests
Hide repeated actual and expected values on passed assertions
Add information to failure message
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Ic1a20481c05afb05b9c29d0bd428b59615d49dc7
237d9c084a fixed videos rendering in the
wrong place on Safari (and all iOS browsers) in edit mode.
Unfortunately, it made the oversight of missing presentation mode, which
gets its SVGs from a completely different place 🤦.
This commit fixes presentation mode.
After this commit, you will see the video in the right place. Please
note that the white border present in edit mode is not there in
presentation mode, so if you line the video edge up with something in
the presentation you may think the video is offset: I suggest lining
something in the video up rather than the edge of the video object.
Known caveats:
- This commit seems to be a few pixels off with larger border sizes.
It's a lot better than before, but still not perfect
This commit does not include detection for the upcoming Layer-Based SVG
engine <https://wpewebkit.org/blog/05-new-svg-engine.html>. This means
that this commit will *break* video if this is enabled in Safari debug
mode. If this commit is merged as-is we need to make a followup to fix
this as soon as possible or we will end up with a similar-but-opposite
bug when that flag is toggled on by default.
Follow-up-to: I205e692e7027ad917bd6f29aa96b0ac70a4c9e04
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ifeea18874d189c80cbb96029706a6f71d6125898
- added row/col divider with a transparent gradient over the area where cells are concealed
- shadow color will change accroding to UI theme (Dark/Light)
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I3fe6f3b35ec84cda5d93fe9a094765cfb75b906c
and don't check for it in the other cases, so drop it in these ones
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie343178869cadc127ee898968fef8f798b6068d5
My local run failed in this test, because scrolling to the right just
twice resulted in a partially clicked toolbar item, so:
cy.cGet('#Home-container .unospan-CharmapControl').click();
failed. Force the clicking so a half-visible toolbar item also gets the
click.
An alternative would be to add a 3rd click if scrolling to the right is
still possible, but that looks less clean.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I4caa3dc79df1bbbd5bd0c7e88ef1baea8ae4b17e
Given the surrounding debug we should be able infer the same
state from its absence.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Id20de40f67ed52dc5535585aec9b5888131d6324
Move Typer and Randomize User Settings to "Functionality" menu
Rename main toggle to "Enable"
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I75709124f835c46ae741c4d51e14ed0b868528ae
Should save time in CI for simple JS errors.
Change-Id: Ib7e1ab68795cab12f8f5ec461cfed6e84986f440
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
WhiteBoxTests.cpp:660:10: error: 'updateActivityHeader' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
void updateActivityHeader() const
^
../kit/ChildSession.hpp:89:18: note: overridden virtual function is here
virtual void updateActivityHeader() const = 0;
^
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I12f21fd9fbe0ba77d2196bfcd1cbdb5ef07e5d06
To address the lack of visual feedback during the delayed saving of document titles, a loading bar has been introduced below the document name/title input field. This provides users with a clear indication of the ongoing save operation. Additionally, the delay that previously occurred after entering a new document name and pressing Enter has been eliminated, streamlining the save process.
Signed-off-by: codewithvk <vivek.javiya@collabora.com>
Change-Id: I9c5a41f999d02dcfaa24e7925029499cf310b2e0
Signed-off-by: codewithvk <vivek.javiya@collabora.com>
This resolves the following Python warning.
unocommands.py:319: SyntaxWarning: invalid escape sequence '\('
f.write('''};
Also make sure the output depends on the script
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: I11f1e028c9c132f4afc66f9b5a6137b478f00774
Cue up some basic state for being signal safe dumped on crash/abort.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ibc6713aef2a0e7b878b178b05f0e13c8d40b47fc
Also move its declaration to the top of the class section with other
class members.
Signed-off-by: Méven Car <meven.car@collabora.com>
Change-Id: I506423078423074171ab00efb6f2d3fab0c68796
This is an issue if we use encoded and decoded WOPISrc for the
same document when using load balancers like HAProxy. It should
be always encoded.
What we did:
cool.html:
http://haproxy.local:9980/browser/2a43eb3236/cool.html?WOPISrc=http%3A%2F%2Fsomewopisrcfileaddress&title=title
ws:
ws://haproxy.local:9980/cool/http%3A%2F%2Fsomewopisrcfileaddress/ws?WOPISrc=http://somewopisrcfileaddress&compat=/ws
These 2 were redirected to different nodes when balancing
was done based on WOPISrc
This is regression from commit a722687c11
browser: simplify getParameterByName
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I17f0c4551404cece0bb995205459f2b38e860795
The mount-point must exist already, since
we always mount read-only. There is no
directory to create, but the subsequent
chmod always fails, since the mounted
directory is read-only. Since we started
warning when chmod fails recently,
6208b37a32,
these previously-silent failures became
noisy.
Change-Id: I9efaa89182c016e9a7a5d36cc3da5bfa7ee599c2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This enables our own logging (much faster)
out of the experimental flag and enables
permanently.
Not for backporting.
Change-Id: I15161ff4f82a2e298942f81f35aea305bb06f683
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
so remove one in favor of the other
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I47778f7bce24f0687565aa179b7a3bbea9d95120
Curently, the exportpdf command hangs in the android app. A fix is in
progress, but as a stopgap solution disabling the command will avoid
people getting stuck
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ied74c3f1fa57356542f3f71e1becbae81f5af7fc
This moves the clipboard resque logic earlier to
make sure it is cached before the Kit process
exits.
By putting the clipboard-fetching command before
the save-before-exit, we should get the clipboard
in most-all cases. There are still edge-cases
that can slip through, but they should be much
less frequent, and they will require much more
involved logic (tbd).
Change-Id: I0eff95c28524002a6131fa0a57ef8e09ae21ca59
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Remove most calls to cy.wait(), reduce and comment the rest.
Stub waitUntilIdle and clickOnIdle
Fix many failing tests
Reduce total cypress runtime by 45%
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I62ddfdcbc3ab107654459ebece2d325eca0c6156
problem:
drag selection starting from the first row or column would result in first col or row being unselected.
It was caused by index being 0 resulting in condition being false
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I3619f52ccc7fdb2883af547f1c907c07ef27ddf9
It seems when users are unknown we can get a different JSON bject:
Object { ViewId: "8", UserName: "Unknown", Color: 13013504, … }
This is then flagged and set as a different (from the identified
avatars) html element in createAvatar from Control.UserList.js
Better to fix the alignment via CSS
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I94fee62ae14bb47c6f989b4e0bb147f8ffc9ff39
This button does nothing (Sidebar: Style: dialog button [square with arrow])
- There is no paragraph style dialog in calc
- The style sidebar pane visible on core side is not implemented in
online
Better to hide it for now.
Fixes https://github.com/CollaboraOnline/online/issues/8135
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I62db3ec6466782a9dc2cb89deffec8023851de2d
To avoid the following warning in C++20:
error: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Werror=deprecated]
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I8b195d675ddc87fa6b16f7240a046fac9a7769e1
Avoid using LOG_TRC etc. during static initializers before logging
is setup:
#0 0x00007ffff7362183 in std::string::size() const () from /lib64/libstdc++.so.6
#1 0x00000000007d1acc in std::operator==<char> (__lhs="", __rhs=<error reading variable: Cannot access memory at address 0xffffffffffffffe8>)
at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/basic_string.h:3586
#2 0x00000000008fdc04 in Poco::Logger::unsafeGet (name="") at src/Logger.cpp:289
#3 0x00000000008fdb81 in Poco::Logger::get (name="") at src/Logger.cpp:280
#4 0x000000000066a30f in Log::logger () at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/new_allocator.h:90
#5 0x0000000000692f8e in Util::rng::getBytes (length=16) at ../common/Util.cpp:122
#6 0x0000000000693312 in Util::rng::getSeed () at ../common/Util.cpp:91
#7 0x000000000044f987 in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at ../common/Log.hpp:87
Change-Id: I6a32a0d3f50a8e769994737d4c09befe11599b4e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
And improve quality of low-grade random numbers significantly.
_rd.entropy() ? is not your friend.
Change-Id: I477557245949334bec517cdeae653c7452ed2049
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Helps us to catch un-necessary invalidations more precisely.
Change-Id: If5d681c025252e9e860e744945b33b68047524d9
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
and how to sudo it, and tweak PATH to use the suggested info
automatically when sudoed
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I977f04bd38ad76393203c06d21f4a27abd0705ef
This setting is obsoleted by https://gerrit.libreoffice.org/c/core/+/161667
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ibd8dd96b4f5d1c0bd2dc0e227d51f714b330596a
If a cell is edited and suddenly press ESC key,
followed by Shitf + Arrow down to select more cells,
so the "uno:InsertMode" state arrives late and
it cannot update the row header selection.
Change-Id: Ib0e4e0699336e07d96efd96559f7b47caa285921
Signed-off-by: Henry Castro <hcastro@collabora.com>
In 24.04 we activated dialog which informs about idle dialog.
It covers full screen so some tests fail on that.
Add {force: true} to ignore that in failing case.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I11a183deb91ca35a2ddecc63b62bcb82b8ad1d0f
With "notebookbar: simplify structure with css grid" (Change id
I21421da5395fb9a7e4063a40f85e6af64e267ada) there is no more the need
to apply float rules as the grid layout should be responsible for alignment.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ie57ffc819f460178eceb03c6796e02a8bc2297e7
Zoom reset button ("#zoomreset") was targeted by its ID:
- We shouldn't do this better to instead inherit css class if needed
- With "notebookbar: simplify structure with css grid" (Change id
I21421da5395fb9a7e4063a40f85e6af64e267ada) this becomes more
problematic:
- Zoom reset button now is align to the top while occupying 2
rows (hover effect display huge rectangle)
- To do: This button should be a big button instead
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iaf93a648b10e380b1b8fd5a1cc12e2a88a2accf5
use toolbar from notebookbar_online.ui in the core
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ibeba3acfdae69248ed4de5d6a2df43cb7d1bb47a
Probably went wrong with bf8b9945ab (Warn
on non-async dialog usage when in debug mode., 2024-01-26).
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ifb92e0d9431f252cdf26ac92dd428b87e5d6e8e0
Fails when we don't check for '<img' in Clipboard.js
_navigatorClipboardGetTypeCallback().
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Idde76a7da26bac624c15c316be8cac638032c848
This is the case when the HTML has no own marker and we actually parse
the HTML data.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I8b1690faccbc9ebc6c67557cde8897eccf641fdc
If tests are invoked in parallel, then interacting with the real
browser/system clipboard would lead to unreliable tests.
In practice this is already problematic, because we don't want to ask
for browser permissions when running tests.
Solve the problem by creating a dummy clipboard that can be overwritten
by a test in cypress_test/.
The actual test is not yet added here, this is just the infrastructure.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Icc9e3900dee7fb4b53454152e5cda13439569bdb
Resolved an issue in Impress's 'Present in Window' feature where the snackbar would persist even after closing the presentation window or pressing the escape key. Now, the snackbar properly disappears as intended, ensuring a cleaner and more intuitive user interface experience.
Signed-off-by: codewithvk <vivek.javiya@collabora.com>
Change-Id: Id491e39d88b433993b5ff83e10c3ca2b1eb8ab40
we want the normal ones, so we see the output in our own console, but we
don't want the others.
It would be better to use posix_spawn_file_actions_addinherit_np here,
but that seems to be currently macos-only.
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Change-Id: Ifd42c51f68ca2f340b78066b381cdbc6a23f0abe
using fork(), the kernel needs to copy the VM data structures,
which can be quite large for the main COOL processes.
I looked into things like vfork(), clone() and using a helper-process,
but it looks like posix_spawn is sufficient for our needs.
Internally it uses clone(CLONE_VM) which means we avoid the VMA copies.
Also, simplify the arguments of spawnProcess,
we don't use the optional params anymore.
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Change-Id: I8f943541dc4d7f56c2d36ccbf7b78c40ec14b8e0
Sets random language and launches debug mode,
turning on the Randomize User Settings tool
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I5e06be624cd5383784ea640304980a82e76be229
Eight is a little few with multiple users around.
Change-Id: I0fe3e8a463463b9d7f2bb3e9efdc4aa12e7777e9
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
so we can pass through the full state that the view reports
which makes it easy to see if a browser side is given a view
whose render settings are unexpected.
e.g. clicking "formatting marks" and not getting a viewrenderedstate
with 'P' or view#1 clicks their "formatting marks" and view#2
receives a 'P'ilcrow state.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I31d3a8397f02dedf2505bed5dd83576f3138b504
- avatar popup list in the top right corener was getting cropped if we have multiple users ( like more than 10=12)
- this patch will make overflow auto and add scroll otion to tackel this issue
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Id57539cb91a7f4a2a3766e6d01f0e6a00d3af92a
- jsdialog not getting close when we change tab
- this will close all dialogs whene we click on tab or change the tab
To test this patch
- add 2 or 3 tab sheet in calc
- add `autofilter` in any calc sheet tab
- open autofilter popup
- change sheet tab
Before this patch:
- popup not getting close when focus goes away.
After: - all dialog should be closed now whene change the sheet tab.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I4eb308e499853a6e1d86b8dc7f60aa938e9c03b9
The old marker is stripped away when Chrome sanitizes the incoming
clipboard HTML. We used to go with both markers to allow an incremental
conversion.
By now, there are no remaining consumers of the old marker, so remove it
before somebody would depend on both markers by accident.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ib9dd0e7cf64e1a99d6038a179651ef5e114c6f8b
It was a dependency of "pako" package, which it was removed.
Change-Id: Ia35b4c4ff9ee5e9ab1f09da398f6d93e51d24a1f
Signed-off-by: Henry Castro <hcastro@collabora.com>
It seems that commit 2d7743cb73
sidebar: initialize after recover from idle
Introduced a regression, in multi user case sometimes
sidebar is shown/hidden by other users. Also app was
slow sometimes what could be a sidebar reloading all
the time.
Revert previous single-init on docloaded and use dedicated
reconnection code to reinitialize sidebar.
This should still fix the problem that when doc become unloaded
with sidebar opened - after reconnecting it was not possible
to close.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4c66d6e7ca0998ea4461ebca1aa401ca4d65a4a9
Change from commit 85ff10db7a
calc: avoid view jump when using formula wizard
wasn't enough to fix the issue. When we receive grab_focus
action for widget which is hidden outside view - browser
will move the app view leaving blank space on bottom.
Steps to reproduce problem:
1. open spreadsheet
2. open function wizard (Fx icon next to the formulabar)
3. move dialog so it is almost completely outside view (edit field
with focus has to be outside view)
4. select some function and click inside edit field for it's param
5. click on the sheet content
Result: view jumps and moves everything up
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I02c5e7432f46d20ccb8ccb6d84395dddb6eb5409
This issue can be reproduced in spreadsheet with split pane
where some cell is merged and longer than a visible area.
Then every click on that cell will move view to the
beginning of the cell - we don't want that.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5649b8a24f0948d08ca5cc5b71f39844d620b52e
Steps to reproduce problem:
1. open spreadsheet
2. open function wizard (Fx icon next to the formulabar)
3. move dialog so it is outside view partially
4. select some function and click inside edit field for it's param
5. click on the sheet content
Result: view jumps and moves everything up
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0555fb72a1dcf6de5e969994229e7a36b7811028
- previously after rmsrv the card is deleted but if the postion of the
card is between the cards and middle card is deteled UI will look odd
- so reload the page after rmsrv event
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I111d6232a0f2b098a144ea642c19994bac71186a
This is meant to allow getting this in for CODE, but not yet for COOL.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ie4c0f5d1154a1acc6d46efdf8d137bc4f30160c8
The paste notebookbar button already tried to use
navigator.clipboard.read() in Chrome, but paste special still just told
users to go via Ctrl-V.
Additional complexity is that paste special was differentiated from
paste based on if this nagging dialog is open or not.
Fix the problem by:
- extracing the 3 places where we close the paste special dialog into a
new _checkAndDisablePasteSpecial() method
- extending _checkAndDisablePasteSpecial() to also handle the case when
paste special is enabled, even if no dialog is open
- extracing the navigator.clipboard.read() call into a new
_navigatorClipboardRead() method
- and finally using _navigatorClipboardRead() in filterExecCopyPaste()
The intent is not not change behavior in any way for browsers that don't
support this API, like Firefox.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I6c373a982604c3e934ee4f4f2f76271f0e7cdf3e
Pasting images in Chrome worked with Ctrl-V, but not when pressing the
Paste button on the toolbar.
This happened because the old code (not using navigator.clipboard) had a
special-case for images, but the new code lacked something similar.
Bridge the gap by checking for images in
_navigatorClipboardGetTypeCallback() and extracting a new
_pasteTypedBlob() from the old _onFileLoadFunc() to share code.
With this, all of own/external HTML, plain text and image should work
again when using the Paste button and the old popup is no longer shown.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I1162d21498a27b1b79455dd565175a2178d213d3
Pressing the paste button for the internal HTML case worked in Chrome,
but not for plain text.
If text/html is not on the clipboard, then also try text/plain.
Images still need more work.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ibd5eb8b3a7319763bf2ea638f338c8f213ed48ac
When pasting with Ctrl-V, paste worked already. When pasting with the
paste button, we just opened a popup, telling the user to do Ctrl-V
instead.
The reason for this is that we used to paste using execCommand('paste'),
which typically fails in modern browsers (reportedly not in IE11).
Use the new navigator.clipboard.read() API (available in Chrome, not in
Firefox) to also actually do a proper HTML paste when using the toolbar
button.
Note that the new API strips away <meta> tags, so this depends on
previous work to switch to a <div id="meta-origin"
data-coolorigin="...">...</div> marker around the entire HTML. This also
just implements HTML paste, plain text and images still need adding;
paste special is unchanged for now.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I2a9340719e99695131f9caa452b5fbfb53573e6c
Currently translated at 24.6% (115 of 467 strings)
Translated using Weblate (Korean)
Currently translated at 73.4% (421 of 573 strings)
Co-authored-by: Seungcheon Seo <seoseungcheon@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/ko/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/ko/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I8f0976c1b6ea3e77ada2d9ee1137b75eaf0ed58a
Some people say it's annoying that you need to click
to enable the document. This patch makes it automatic
so popup is closed when mouse enters the app area.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic5182c46b0687c4441a58d05fa1b8a644af0ba65
After document idle (document become unloaded on the server)
when we click in the popup and document was reloaded - if
sidebar was present previously it should be reinitialized.
Without that it was visible but not interactive and it was not possible
to hide it.
1. To test that use small timeout in the coolwsd.xml:
per_document.idle_timeout_secs
2. Open sidebar
3. Wait for idle
4. Click in the idle popup
Sidebar should be interactive and it should be possible to hide it.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I8d4e970b77860115226dffc4c2b0c585fc091487
with:
Not enough compute credits to prioritize tasks!
Failed to start an instance: INVALID_ARGUMENT: Not Found 404 Not Found
disable until it might work again
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: If7c9ac8b8785ff0b13a45f5fb2ae85da9970d8c2
Add a way to search with an offset in findInVector() and then we can
avoid strstr() which assumes a null-terminated input, which may not be
the case.
READ of size 55 at 0x606000068a56 thread T8 (docbroker_001)
#0 0x55d0d6718a5a in StrstrCheck(void*, char*, char const*, char const*) /home/abuild/rpmbuild/BUILD/llvm-15.0.7.src/build/../projects/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:652:5
#1 0x55d0d6718882 in __interceptor_strstr /home/abuild/rpmbuild/BUILD/llvm-15.0.7.src/build/../projects/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:669:5
#2 0x55d0d71872c9 in ClientSession::postProcessCopyPayload(std::shared_ptr<Message> const&)::$_4::operator()(std::vector<char, std::allocator<char>>&) const /home/vmiklos/git/collaboraonline/online-23.05-san/wsd/ClientSession.cpp:1631:31
During unit-uno-command.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Id42669d912bab4746d9f7d99a192c4c3f1d175f7
Prevents to overflow when the range name is long in conditinal format dialog
Reproducer steps to see long dialog:
1. Create a conditional format where the range is very long (inserted manually)
2. Home > Conditional formatting
3. Create
4. Scroll and paste the following in the Cell Range > Range:
`N3:AL4,N25:AA25,AC25:AL25,X11:AL11,N6:P7,Q5:AL10,Q12:AL13,N5:N7,O5:P5,N14:AL19,N11:P13,A8:C11,N8:P10,C20:J20,O20:AL20,A20:A27,D27,D10,T21:AL24,A3:K7,A12:K19,H8:K10,H27:K27,A28:K89,N26:AL89,M5,D11:K11,Q11:V11,L3:L89,N21:S22,N24:S24,M23:S23,B21:K26`
5. The title never gets truncated and the dialog is too wide
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Ib845bc84a85d90dec87115cdcd10ae8704163081
- Trying to open context menu from a sheet tab also
changes the active tab. This occurs when right click
on a sheet tab (or long tap on mobile or tablet)
- moveLeft and moveRight of inactive tabs are
implemented.
- added _moveSheetLR and _moveOrCopySheet functions.
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: I5b25a8cb363b8e04fd6dcec1f500e7ff2982b678
/usr/bin/../lib64/gcc/x86_64-suse-linux/12/../../../../include/c++/12/bits/stl_vector.h:1124:9: runtime error: reference binding to null pointer of type 'char'
#0 0x557ce8c06055 in std::vector<char, std::allocator<char>>::operator[](unsigned long) /usr/bin/../lib64/gcc/x86_64-suse-linux/12/../../../../include/c++/12/bits/stl_vector.h:1124:2
#1 0x557ce8f16e3f in FileUtil::readFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, int) /home/vmiklos/git/collaboraonline/online-23.05-san/test/../common/FileUtil.cpp:449:37
While running toplevel 'make'. Both 'st.st_size' and 'off' were 0, so
this is an edge case.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I4899bffa48a761c84b6ee7d42776453b641ff5a7
make it bold with large text :-)
and move the exact figures back down to the bottom left
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I950ce3db288d63aef201f0a6274f778f2f05bc14
in practice presumably img can't be null, seeing as currently hasContent
would then be true, then we always deref on calling this._applyDelta
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I48d2466c0a12e4f7084d57a55a963cea469cf2fa
As pointed out at
<https://github.com/CollaboraOnline/online/pull/8041#discussion_r1457933092>,
it's not valid to have a markup like <div><html>...</html></div>.
The old markup was <html><head><meta ...></head>...</html> and that got
stripped away.
Fix the problem by going with <html><body><div ...>...</div></body></html>
which survives browser sanitize and also is a valid HTML.
Both the browser side and the wsd side is updated to go with this
inside-body markup. This also allows simplifying setTextSelectionHTML(),
because the valid HTML means the browser automatically strips the
<style> element whtn converting to plain text. Also remove a leftover
debug code in ClientSession::preProcessSetClipboardPayload() that I
forgot to remove.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Icb0b26a37320ae98237222b450a861ebcb2f0c43
The "logging.html" end point was intended to capture
unhandled javascript exceptions from client side,
only corner cases, when websocket is disconnected or
very early errors before websocket is created.
So add a token to restrict access.
Change-Id: I64b7d7f3b3ddd83f044fea21dc07285b4465b3be
Signed-off-by: Henry Castro <hcastro@collabora.com>
The variable initialization does not depend on
the conditional M4 macro expansion.
Change-Id: I39f0079ea668768724e0ca3175070e66dc858b0b
Signed-off-by: Henry Castro <hcastro@collabora.com>
The iOS app add event listeners is not a
conditional M4 macro expansion, so
move into the global.js file.
Change-Id: I3adb767cc191a73f0d9197af692e22dd72c6ab46
Signed-off-by: Henry Castro <hcastro@collabora.com>
'logServer' to save logging data to server side.
Change-Id: I7e5fd0d0f3aefaade1f34b98f9004af2579ba2bd
Signed-off-by: Henry Castro <hcastro@collabora.com>
Use "fetch()" function to save logging client data
to server side.
Change-Id: I8b6a94b7ad7ae02ca00666759e3695867df4d372
Signed-off-by: Henry Castro <hcastro@collabora.com>
CXXLD unittest
/usr/bin/ld: ../kit/unittest-Kit.o: in function
`Document::updateEditorSpeeds(int, int)':
/opt/shared/work/libreoffice/repo-online/online-cl/test/../kit/Kit.cpp:1488:(.text._ZN8Document18updateEditorSpeedsEii[_ZN8Document18updateEditorSpeedsEii]+0x2d9):
undefined reference to `ChildSession::getSpeed()'
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: If95662647d33f80dd98013b6bc81be897dd6ffc5
cypress_test/integration_tests/desktop/writer/top_toolbar_spec.js's
'Insert hyperlink.' testcase failed with:
assert expected **<p>** to have text **text text1link**, but the text was **@page { size: 8.5in 11in; margin: 0.79in }\t\tp { line-height: 115%; margin-bottom: 0.1in; background: transparent }\ttext text1link**
We typically ignore styles on import (and keep the ones in the document
already), so fix the problem by extracting part of stripHTML() into a
new stripStyle() and use that in setTextSelectionHTML(), which restores
the old behavior when it comes to the plain text version of our current
selection.
The old clipboard marker didn't have this problem, but that got removed
entirely with the new clipboard read HTML sanitize, which is even worse.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Id07bf8bc7b1701e53415bde3cf8773411d830e9c
Seeing:
short-circuit, internal paste, new style? true
on the console with this, which will work even after our HTML gets
stripped with the new-style clipboard API.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I74b14a4415fa026cf24909323d23f760997bd392
Tested with an extended version of unit-copy-paste, which will appear in
the next commit.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ib15b7918fe678c594e2c345cfca27ba2f1c8b516
The HTML we produce on copy has to go via a sanitize process on paste
once we start using the new clipboard API at
<https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read>.
The trouble is that at least Chrome simply strips away all <meta> HTML
tags, we can no longer recognize our own HTML output, preventing us from
doing a better internal paste.
Fix this by switching to a markup with survives the cleanup: a <div>
around the <html>...</html> fragment.
This just introduces the new markup, doesn't replace the old markup yet.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I75b00d00064ce452a57185c62f4d99a6d052d867
Used to substitute user-request variables
in the files being served.
Change-Id: I7c0046328ec05f2feb7fcd9df9a21e415a1e2513
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This class will be responsible for faster
variable replacement to serve the templates.
Change-Id: Ic0d75b0a197c0db75c0988c3b6af400a5b1c35a2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Throwing exceptions from an async processor does
nothing good. Instead, we handle the consequences of
the error in-place, instead of throwing.
Change-Id: I85c4cee7cc8231453498e4cb9cb07a07b2b417c9
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
CheckFileInfo requests can now redirect
to a new URL.
Change-Id: I7579ac37235b1a2ac1d7091366f0046cf889ce15
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This breaks the CheckFileInfo fetching
code in RVS into its own function to
allow for redirection.
Change-Id: I8bfa3a71705c77af8f6e75ed1af75e710767cf19
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
RequestVettingStation is designed to
vet requests before allocating further
resources. Specifically, it is to be
used to verify whether the resource
requested exists and whether or not
the request is allowed and authenticated.
All of this is designed to be done
asynchronously, for performance reasons.
Change-Id: I399fa7bc91741ffee065a6d41acca0756eedc939
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Will be used for parallel loading, when we
transfer thread ownership to DocBroker.
Change-Id: I99dea58afc6c86d7937e32c8b3313676cc46d3b7
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is to allow for having gotten the WopiFileInfo
before creating DocBroker at all.
Change-Id: I0f21442860e09385e504b9a98049af286cc5b404
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Sets dark mode, zoom, spell check, sidebar, and moves around the sheet
in calc
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I56adcc425e3d7472f811f6e1e904186554dd432f
- Best to use a more generic insertcell icon (used also in core) instead
of re-using the insert cell right. (specially because this button
triggers another option panel)
- Insert sheet after button had the same svg as inset sheet before
- Fix it and make those more distinguishable
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I90dde5ce35c8d765abf7db1d663ab977b44d26b7
Regression: 9b752c79b7970585c0cce3026d701b8e8b33d8a0:
spellcheck dialog drawing area is affected.
Modalpopups are affected from image render delay.
So make the solution specific to modal popups.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I9456c347f0fa9da932e4df61f3324bb39544c06d
This commit hides the 'Present in Windows' button in Impress on mobile and tablet devices. This change is necessary because, on tablets, pressing this button currently results in the presentation being saved as an SVG file, which is not the intended behavior. The button should only be available on desktop environments.
Signed-off-by: codewithvk <vivek.javiya@collabora.com>
Change-Id: I362183d899409f3c3075aeaaa3e50cde11e59925
- use margin-inline-start/end insted of margin left / right.
- This is important for RTL mode
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ie352a247aeedb1d1e9ff331a442a1c5214dbb470
- Child popoup like filter by color or filter by condition has fixed potion on screen
- added calculation child popup in autofilter
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I8adc33e782bd7a238231ecb80e533a11bc71e5b4
Unused in the package since:
commit 2def6dc3d5
Date: Sat Aug 27 17:49:50 2022 +0100
Switch to zstd image compression.
Change-Id: I785ad2c1522721ed34cf89a1922ee06d5e2507e4
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
According to the systemd.kill man page, when
KillMode=control-group "all remaining processes
in the control group of this unit will be killed
on unit stop." This ends up killing the kit
processes as well, which prevents saving any
unsaved modifications before shutting down.
The setting we want is 'mixed'. According to
the man page, with mixed "the SIGTERM signal is
sent to the main process while the subsequent
SIGKILL signal is sent to all remaining processes
of the unit's control group."
In other words, with KillMode=mixed, coolwsd
will receive the termination signal and it will
manage its children. But systemd will still
make sure that when coolwsd terminates, or when
it times out, all children and properly killed.
This changes KillMode to mixed.
Change-Id: I4123dfe5143d2cc6223b1542821a10bad86fb449
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Send "tooltip: <payload>" to client for this callback type.
Client-side handling should be implemented separately.
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I2d1a07dd36fa20a4b5ff785da788356e0f41d62f
so on failure remove the output so a second attempt doesn't appear
to succeed
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ibc1f7d46c2946cdc6a4dbcd6181872fb12e19fb6
Let's get this merged and try to fix later.
It works locally but not on CI.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I62dda307575f6b8e9eac40b061b2f8c9e609f2e7
For faster testing use special values in Cypress case.
- check inactivity every 1s
- out of focus timeout - 1s
- inactivity timeout - 7s
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I9dd51f2098486917898b7624ac5ade56521f9e96
But re-write them anyway to be more sensible.
Change-Id: Ie146f4f84b539ab7e826a1c1b947497acde7e384
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
- Ctrl+Alt+PageUp and Ctrl+Alt+PageDown shortcut
behavior were updated with 1bf686859d
- Documentation in "Help > Keyboard shortcuts" dialog has
been updated as:
- Go to next sheet. -> Ctrl+Alt+PageDown
- Go to previous sheet. -> Ctrl+Alt+PageUp
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: I5eafb2226788660d53d69c12f698e6c8997c90d9
- problem: open new document and toggle the formatting marks
. Formatting marks appears and can't be turned off until you change the
theme
- its a regression from 9d6b1d1
- canonicalchangeid can happen when turning automatic spell
checking, formatting mark. we can't rely on viewrenderedstate to
invalidate tiles on client side
- for example, it we toggle formatting marks viewrenderedstate remain
same but canonicalid changes
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I6b170caa942c22d55198408c2ca67f14860f2c92
Fixes a bug in the mobile version where the busy popup was erroneously covering the entire document. Adjusted the styling to ensure proper display and user experience.
Signed-off-by: codewithvk <vivek.javiya@collabora.com>
Change-Id: I6b3b9900b3f0891f36aacac3e7ab9013d4e93690
and
cid#340397 Division or modulo by float zero
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I0e2fae591f726eca0f3a605cd8c09d2de25d8db7
and just "tile invalidations" toggled on
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I8b8070acd9a7fc39ae176b8cf7a7c89517cd9ec5
This is followup for commit add3b76eb5
IdleHandler: bring back idle timeout for view
Which restored dimmed view, but I forogot to bring back
sending userinactive message in some cases
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5b5627847f83d742b9c0c48632aa9d7a5ddd39bc
Converting the coordinates were inconsistent.
Created JSON was not valid.
This PR fixes the issues.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: Ibb9cf4e4517a8e3f2d5fc701fdcf287ce72b6b9c
Snackbar only closes once only when user clicks dissmiss,
or the windowed presentation closes. Snackbar doesn't timout.
Signed-off-by: NickWingate <nick.wingate@collabora.com>
Change-Id: Ic42f2621792622b0e76959e7ebf825b680077449
When starts presenting an indefinite snackbar apears with
buttons to dismiss the snackbar or close the presentation
Signed-off-by: NickWingate <nick.wingate@collabora.com>
Change-Id: I1232894c9ab0ce12ecaaaf4eec0d19b9caedb883
Use uiManager.showInfoModal to notify instead of alert()
Signed-off-by: NickWingate <nick.wingate@collabora.com>
Change-Id: Ide384dafaf21f1b541417fd53d57a8b1bb4fd385
Prevent multiple windowed or fullscreen presentations
from one document instance.
Signed-off-by: NickWingate <nick.wingate@collabora.com>
Change-Id: I0eb290888217478e3e417af6474813bf926f5f58
Add new 'presentinwindow' command which opens
a new window to display the slideshow svg in.
Signed-off-by: NickWingate <nick.wingate@collabora.com>
Change-Id: Ia28fcff0fd4ad64aca60381db202d7073661dc8a
./node_modules/typescript/bin/tsc mocha_tests/CanvasSectionContainer.test.ts --outfile mocha_tests/CanvasSectionContainer.test.js --module none --lib dom,es2016 --target ES5
src/layer/tile/TilesSection.ts(134,24): error TS2569: Type 'Set<any>' is not an array type or a string type. Use compiler option '--downlevelIteration' to allow iterating of iterators.
Makefile:926: recipe for target 'mocha_tests/CanvasSectionContainer.test.js' failed
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I6ee6e1f178619bd7d1db012436a3ee17ceb6b7c7
Steps to reproduce:
- Insert chart in odt
- right click and select properties
- see dialog looks odd
Problem:
- label element after spinfieldunit getting overlapped
- user can not see label tag after spinfield conatiner
Improvment:
- added css for spinfieldconatiner to fix overlapping issue.
- improve margin for more readability of .jsdialog.ui-text
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: If64d30d10021a023c76852647ef8aebdede0513a
VoiceOver is the iOS name for the function. Let's pick a more neutral name.
"Screen Reading" was suggested by Michael Meeks.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I9d6f7f59d06bf83e0324dc095f3c141e122ad5f4
If there are multiple sheets, you can switch between them with Ctrl+Alt+PageUp/PageDown.
this shortcut has been updated as:
- Ctrl+Alt+PageUp -> go to the previous tab
- Ctrl+Alt+PageDown -> go to the next tab
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: Ic88adbe6cdd629b002810770bc19dc7af35d4499
Make it more unified with "Office" color picker.
Use styling from jsdialog for color picker to match
all other ui components.
Unified with existing "Automatic" button for font color.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I93d1031eaa7d3f3d52dc1812657eef20f4b88a82
Previously, noManualDrag was not bound to any object. This worked fine
in SVGGroup.js because the 'this' that was inferred was the correct
'this', however in Path.Drag.js the 'this' inferred was incorrect. This
code path was occasionally called when dragging which caused an
intermittent error while dragging objects in draw
This is a followup to Iab0d3bcca588eaed14469597868a9c4e2dcf8488, which I
believe introduced this regression
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: If8657133a1b6c000b1096fb2c822d02d728de80c
- regression from d118874bee which was a
fix for regression from 93b5bdf
- previously we used to send blockingcommandstatus message to the core
when we were getting statusindicatorfinish but when file is readonly
we load the document first therefore we get the statusindicatorfinish
first then wait for the input from the to whether to open the readonly
document or not
- now we send the blockingcommandstatus only after we get the first
status message which indicates document is loaded and opened
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I0f4934e085befa6f9a918ac61a265391b217a2f2
So this only affects the case where we reuse the fd from opening smaps_rollup
Bug seen in 4.15.0 and not in 6.5.10, suspected to be fixed by:
258f669e7e
included in >= v4.19
Test for this in coolwsd and set a flag if it is broken
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I0a4aca77b9d9201e4f70172340296e5eb5460229
- Multiple groups at the same level were overlapping
and therefore, it was not possible to see collapsed
('+') control boxes.
- note: there should be no space between groups
to reproduce the issue. If there is a space between
groups; of course there will be no overlap - which
is expected.
- This patch fixes this issue and now collapsing
multiple groups at the same level don't overlap.
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: I93c119031d6730ddb98bfb8c9c87f71bd5cb31b6
- groups was using indexes to find their parent groups.
- this does not work properly and causes following issues:
- some groups are created but not drawn (so they are invisible)
- some parent groups does not hide their child groups
- this patch:
- removes the index-based search of parent groups.
- implements startPos and endPos based search.
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: Ia3b85f3d9a032008f8abbc7b38ad2417aa0ec6c8
File names with spaces or non-ASCII characters are encoded in the URL so
use -[NSURL path] to properly decode and convert the URL to its system
path.
Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: I156bde25e299f1fa42f02c8516c6603eadfe0691
Have the document's DocumentViewController display a save dialog and
export a copy of the file written by the LibreOffice code.
Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: Idf8136bc321893f18010eb74f9c39b21f0f698d5
Currently translated at 100.0% (558 of 558 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (558 of 558 strings)
Co-authored-by: Sebastiaan Veld <sebastiaan.veld@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/nl/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ie513982c5fd19e8590dd1afb1d49b6d07d5fd72b
The header highlighting was tied to the position of the cell cursor
so when editing a cell the highlights disapeared with the cell cursor.
This also checks the previous cursor position if there isn't a current one.
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: I93bf38b42cbaf091511c05e38bfab331e9532f4a
In old versions of Safari, typing text would not input anything. This
appears to be a regression from replacing the input area with a
contenteditable div (1d2607e836).
This seems to be caused by "Safari has the user-select CSS setting as
none by default" (see https://stackoverflow.com/a/31831776/12293760).
From my research, this only affects old versions of Safari, but adding
this CSS fixes it and does not prevent editing in other browsers.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I708708b87f3169f6f69cab28003379519ce114dd
Currently, the header entry initialization does not correctly set the
backgroundColor or hoverColor and fails silently. Fix that by grabbing a known
CSS property.
The on onMouseMove callback also incorrectly sets the previous entry to
the resulting entry before using it within a comparison. This causes the
branch to never be taken.
Fixes#10
Change-Id: I801fd3e6b6759b0ab66a99d68cd0ef80f1f3737e
Signed-off-by: Mazin Alhaddad <mazin@getstate.dev>
This new button is located at the "File" tab and it's only visible if
the enable wasm node is set to true in the coolwsd.xml
- Add missing svg
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id9f16f50f589272848519e8a4578e965e4371035
- add bg-color for active sheet tab in Calc
- this will differentiate selcted tab with the not selcted
- add hover effect on active tab
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I1e1b4dfa868c30bbf7b3abdd6dafad88777ce19a
This allows to select several columns (or individual cells) at once,
and then double-click on the respective "border" area to resize them
automatically to their content (.uno:SetOptimalColumnWidthDirect).
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I8b19ecb00a6285fec90d73ca09731b4393be6981
This fixes regression introduced in
commit 86e8491707
For .eslintrc change, see: https://github.com/typescript-eslint/typescript-eslint/issues/1824
Where per_view.idle_timeout_secs and out_of_focus_timeout_secs
settings didn't have any effect.
<out_of_focus_timeout_secs desc="The maximum number of seconds before dimming and stopping updates when the browser tab is no longer in focus. Defaults to 120 seconds." type="uint" default="120">120</out_of_focus_timeout_secs>
<idle_timeout_secs desc="The maximum number of seconds before dimming and stopping updates when the user is no longer active (even if the browser is in focus). Defaults to 15 minutes." type="uint" default="900">900</idle_timeout_secs>
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iff3b1c26ec07c67fd9be0fb7264468b0be479978
As described in the comment there was problem with
userinactive command. This is now solved due to:
commit fa006fc3af
Don't make view inactive when dialog is opened
Comment was from commit 6550e713c4
annotation: calc scroll vertical to make selected comment visible
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ica947cc743292ce3610f52011396ec5f9a73593c
Steps to reproduce:
1. open empty spreadsheet
2. see error in the browser console:
Uncaught TypeError: Cannot read properties of undefined (reading 'getSectionWithName')
at Comment.isAnyEdit (CommentSection.ts:991:42)
at IdleHandler._activate (Control.IdleHandler.ts:57:89)
at NewClass._onSocketOpen (Socket.js:256:19)
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I3584c63ae42e6e64b730907bbd33a7b0876da01a
In readonly mode, mouse events are sent from the browser side. I had changed it.
It may cause unexpected behaviour when it is activated for Calc. So i am taking it back.
Now readonly mode is sending one more event (readonlyclick) on click.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I8af51afe0e07164d065ad0fbbc1452b364bc2dee
Not only quotes must be escaped; JSON.stringify does it correctly.
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: Idd7deca3cb9154eaece48ef3b197eb75d975f252
- in case we will remember in localStorage old name which is no longer
present
- also add support dor DocumentColors when it will arrive
from core
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I9d4b5d91f424c8295da072836331e459d79c96d1
It will be possible to use "theme colors" then.
It requires core part: https://gerrit.libreoffice.org/c/core/+/161771
sc: announce theme colors with lok callback
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I74552027f57086910358e589ff3130655a236c53
The JS code does the same at
browser/src/layer/tile/CanvasTileLayer.js:3074.
In preparation of picking core.git
51d8a2ef54751403fa707816e27ddb4e7faa8231 (cool#7492 sfx2 lok: fix bad
view id / statusbar string on async binding update, 2024-01-08) to
core.git co-23.05: this online.git commit should go in first to avoid
breakage.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I652e5c738b7e137970a820de2d71f9c03ba6df7e
Once core emits JSON format for the LOK_CALLBACK_STATE_CHANGED callback
for the .uno:RowColSelCount uno command, select 2 cells in Calc ->
status bar is updated correctly, now select a single cell again in Calc
-> status bar is not updated. We want to emit JSON format for more uno
commands in the future, for example that is meant to allow testing the
fix for the statusbar part of
<https://github.com/CollaboraOnline/online/issues/7492>.
CanvasTileLayer's _onStateChangedMsg handles a mix of plain text and
json payloads, and the plain text case already allows an empty payload,
while the JSON one does not.
Fix the problem by assuming the intention in commit
403fe10c9d (jsdialog: handle graphic items
updates, 2019-11-28) was to make sure the json key is not missing, not
to block empty string values for the 'state' key.
Once this is in, core.git can emit JSON for .uno:RowColSelCount, can say
which locale was used to generate the payload and we can assert the
correct language in a test.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I145a552e88fdc869a151a0bd07e8b42474ffd6b8
Also better explain that we dump sessions twice.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Iec3ad5b9f78f0572d43cfba1191bcec3584c0092
These tend to be sent at small increments of time, so have some
hysteresis to aggregate drops. Stalled JS such as in a debugger
or a client not responding can cause this for quite some tiles.
Change-Id: Ia807d4ba0ac26a95cad435cba9ed191f22706041
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Download does not mean much in mobile app context.
It's an offline tool. We can save (or export) the
document in a different file format.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I7b5cd8cd49258803c21bd21ff087008fe715c613
Currently translated at 100.0% (467 of 467 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (554 of 554 strings)
Co-authored-by: Stanislav Horáček <stanislav.horacek@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/cs/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/cs/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I19dd29ea5c45d9658d9bd9775b1b64706d94f1f4
Currently translated at 100.0% (467 of 467 strings)
Translated using Weblate (Slovenian)
Currently translated at 100.0% (554 of 554 strings)
Co-authored-by: Martin Srebotnjak <miles@filmsi.net>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/sl/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/sl/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I0d687f46e979aa49ebf7fc0ccf8b50f97305e5c4
Currently translated at 99.1% (463 of 467 strings)
Translated using Weblate (German)
Currently translated at 99.2% (550 of 554 strings)
Translated using Weblate (German)
Currently translated at 98.5% (460 of 467 strings)
Translated using Weblate (German)
Currently translated at 98.0% (458 of 467 strings)
Translated using Weblate (German)
Currently translated at 97.8% (457 of 467 strings)
Translated using Weblate (German)
Currently translated at 93.3% (436 of 467 strings)
Co-authored-by: Ettore Atalan <atalanttore@googlemail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/de/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/de/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I828e5ef8e9ac572c696970c42eec333c16a87092
Currently translated at 100.0% (467 of 467 strings)
Translated using Weblate (Croatian)
Currently translated at 100.0% (467 of 467 strings)
Translated using Weblate (Croatian)
Currently translated at 100.0% (554 of 554 strings)
Translated using Weblate (Croatian)
Currently translated at 100.0% (110 of 110 strings)
Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-app/hr/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/hr/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/hr/
Translation: Collabora Online/Android app
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I4caa22b84638934e6f8474cbdad5ecd9e5ffc51e
Currently translated at 100.0% (467 of 467 strings)
Translated using Weblate (Polish)
Currently translated at 81.1% (379 of 467 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (554 of 554 strings)
Co-authored-by: Matthaiks <kitynska@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/pl/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pl/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ic5af4a7980c51e36c6b5b5af9e1eaf173f23d09d
- when migrating document from one server to another using indirection
server tiles were not getting updated
- _resetClientVisArea should be called even if there are no changes to
the client because the server needs new data even if the client is
unmodified.
- changing wireId and invalidFrom values to 0, 0 to force a keyframe
b1f0834ac4/browser/src/layer/tile/CanvasTileLayer.js (L7266)
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I9aa0b34c3b1f157f3e4494568802588e00376d7e
If user opened any dialog and we got blur event on
map - it was doing the view inactive by sending
userinactive message to the server and ignoring any
meesages we tried to send. Because of that it was
impossible to test in cypress dropdown dismiss by
click outside popup (due to losing focus from map).
This is regression from rework:
commit 86e8491707
For .eslintrc change, see: https://github.com/typescript-eslint/typescript-eslint/issues/1824
where we changed:
- if (!this._active || isAnyVexDialogActive()) {
+ if (!this._active || isAnyVexDialogActive() || this.map.jsdialog.hasDialogOpened()) {
Make more precise condition so we check if the dialog is a dim one.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic200bd3f0327e4c43d80fb8cf7c2fbd176485b82
problem:
if comment is already selected and has replies,
then if we try to modify it may not rearrange replies to make comment editing fully visible
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I1c563e5a728dcaa3fdd93cd3612f59a3518e887e
It is a bug from Firefox, according to records
https://bugzilla.mozilla.org/show_bug.cgi?id=292284
The vertical scroll bar requires minimum height to render.
Change-Id: I93b06c625bc98c307dde0c1d6331d457ff99baa5
Signed-off-by: Henry Castro <hcastro@collabora.com>
The 'addMultiClickListener' fires 2 times
'triple click', because it also registers
for 'quadruple click' too.
Change-Id: Iee7565163e64373c87016743c06fe1cc084b80f4
Signed-off-by: Henry Castro <hcastro@collabora.com>
When always_save_on_exit=true we should
still not upload the document when it
isn't modified.
In this case, because we now always
save the document (forced) when
always_save_on_exit=true, and because
saving always generates a new file on
disk, with a new timestamp, we couldn't
detect that there are no modifications.
We now still force save, but ask Core
to skip it if the document is unmodified.
This is safe since we now always issue
the save, but rely on Core to do the
right thing. When the document is saved,
we do the normal upload as in that case
we know we have a new version of the
document, which must be uploaded.
Worth noting that the closedocument
command doesn't trigger the same path.
To reproduce the issue, we need a new
test that disconnects, instead of the
graceful closedocument command.
Change-Id: Iaa4e0363ed2eca124f2d1943393e65c0c187aa18
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The new WKWebView.inspectable property must be set to YES in order
for Safari to connect to a debug version of the iOS app whether the
app is running on an iOS device or on macOS.
Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: I873a25a149e3ec967ab0775ba8105ecce26f07ac
Similarly to the iOS case seen in #7908 the %SAVED_STATE_UI%
does not get replaced. In mobile apps there is no fileserver
that can replace these variables.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Icb7f9d7550b0990cc0ad1d65253773b49ff97795
This is partial revert of "jsdialog: use open/close instead of toggle for dropdowns"
commit 0833ec6489.
Which introduced "state" variable which was desynchronised with core in
some cases. Now directly call desired close command in closePopover.
This fixes bug:
1. Click on the sidebar's Paragraph's "Ordered list" dropdown arrow;
2. Click on any kind of the list (so that the current paragraph gets the chosen list style);
3. Click on the drop-down arrow again, expecting the drop-down to open.
Result: you need to click two times to open menu again
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ief49d4aff45bc58a6c02fcdcd8cb2b3f1ec6e691
Using the aggregated file saves a hundred+ system-calls per
pid we're getting data for, and presumably also lots of time.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I41c40982ebbec44aba72a1d15dabf24a8986f59e
It internally handles the mouseup. So we don't send it again.
Without this change, context menus can't behave normal. Because mouse pointer is set to somewhere else with the mouse up event.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I719565b1ce192045250f9217e971725d8cc1003b
Don't show error to the user as it is not critical
but put in the logs more meaningful message so we can debbug
later.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I7b27a19ac7af845de74d7a4fb65682dfe03c042d
so it doesn't sound that serious like previous message
and is less generic and more easy to find in the code
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I3eb746af8aef39b566d3213ab2935372219e8d98
Maintaining the state is cheap & easy compared with rendering it,
so toggle rendering - but maintain state in debug mode as now.
Change-Id: I06b29c8a2a8652a63e9ca1e4b7dc31bfe7cafc1e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
This forces autoSave when always_save_on_exit
is true. This is needed so we can guarantee
that we don't have modification and that
we upload if there has every been one.
The latter case is checked in
DocumentBroker::needToUploadToStorage(),
which is called from
DocumentBroker::checkAndUploadToStorage().
A new test reproduces the issue and defends
the fix.
Change-Id: I0b2105a57cfd7049ba7b1f63e62a700fdc3744c2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Share a single emission function. Events are re-parsed and
emitted and adjusted in ClientSession; JSON escape event names.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: If489d516bf20d5ec34cfe61f7e4fb09cf2e14bf2
Fixes#7885
Be more flexible and allow to run service with configured
hosts which doesn't work with lok_allow (invalid regular
expression for std::regex which is used in core).
This change instead adds error report in the logs, without
it it was crashing when any host was not compatible.
For example when using domain like:
"*.example.com" which should be ".*\.example\.com"
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Id664df95899bda866b9179a3941280626a2c0299
The quarantine path should be an absolute path.
Unfortunately, because we had relative=true in
the path config, we couldn't detect empty configs.
This is because with relative=true the getter
would create a path based on the current directory
and the config value, which would default to
"quarantine" when empty.
This would result in /opt/cool/quarantine or
/usr/bin/quarantine when in fact the path is
really empty.
Now, the config has relative=false and
there is no default. In addition, we
warn if the path is no absolute.
Change-Id: I1b3eb5e76866a12d214b47e6556942715a210e54
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
As this is a member of the Quarantine class,
there is no need to have "Quarantine" in the
name. This was a hang-up from the time when
it was a static.
Now we can log the enabled-state.
Change-Id: Iab1cec4d90671cda175c1d320e4f3318dd7b89a1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Below cases are covered in current patch
- `Filter by Color` in autofilter should have radio buttons.
- Changes should be applied whene we select any option from `filter by color` submenu.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I1a757e09be81df934b46d48f71e8be28fc48c984
When building the iOS app, the %SAVED_UI_STATE% does not get
replaced with a quoted string during the build and the resulting
unquoted string causes document loading to stop.
Also, eliminate warnings when running in Xcode by adding missing
CFBundleTypeRole entries in the iOS app's Info.plist.
Signed-off-by: Patrick Luby <guibomacdev@gmail.com>
Change-Id: Ie398955241a078be45af28e54c49387ff673870b
This applies the cgroup memory limit, if set,
such that if it is lower than the configured
memproportion percentage, we do not exceed it.
Otherwise, we risk running out of our cgroup
limit and by then it is too late to do anything
but die due to OOM.
This also moves the logging of the cgroup memory
stats from COOLWSD into Admin, to avoid duplicate
logging.
Also updated the description of memproportion
config entry to account for the cgroup logic.
Change-Id: I870ae61c1260eb2b3275bd2fa1a4c48ff30957a2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Split tools into categories,
Make Tile Overlay toggleable,
Adjust which tools start enabled,
Comment out non-functional tools,
Adjust some names
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Ic973671a3c323f10d7f95918459ffc91a2f5c35d
Core side seems to handle the mouseup event automatically for the right mouse button.
When we send another mouseup event, selected text can get unselected and context menu can't find a selected text.
Issue is:
* In Impress, select a text in a textbox and right click.
* Context menu cut operations doesn't work.
Cause:
* We send the right mouseup twice, the second event unselects the text and sets the cursor position to somewhere else.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: Idae749da42443ccdd7ef2fc795b042536fae0db6
And other changes to reduce logs by about
20 lines per test (15% of total)
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Ia6a1c96752816c5cd9fb11368cf921bdce9936ff
- before this patch when socket connection failed, we used to show the
same error for socket connection failure and send the
'Action_Load_Resp' with same errorMsg
- now we show/send different message for unauthorized and loading
failure
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I71b1b7f8e2eca93790d068583370787825911a41
If we had very long or tall cell - maybe bigger than a screen
on every selection we tried to show it on the screen what
caused view to jump. If cell is bigger and partially visible
left view at the same position to avoid "jumping".
Steps to reproduce:
1. merge many cells - longer than one screen width
2. scroll in the middle of merged cell
3. select the cell
Result: jump to the begining
Expected: no jump if it is paritally visible
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I04da5cd346f175728222888a039a796b271e00d1
This fixes view jumps in the Calc when some user tried
to drag a selection but did it very quickly so it was
interrupted by the _mouseOverTimeout callback.
Timer was introduced in commit 72c407e0ed
loleaflet: support mouse cursor calback
But we noticed the issue recently. I remember that dragging
the selection was not working some time ago, it is
possible that it was fixed and because of that we experience
this bug.
What it does is that it stops dragging mode in half-done state
so then other views sometimes use the leftover data.
To be 100% fixed it should be also protected on the core side.
Steps to reproduce:
1. Open calc in 2 sessions
2. A selects some range of cells (for example 3x3)
3. A clicks inside selected range and holding the mouse
button does rapid move to drag the selection (move
the content of cells) - it has to be done very quickly
< 100 ms after initial click
It is done properly when you see on the screen selected
range and cell selection, but the two are not overlapping
4. User B goes somewhere far in the sheet and:
- changes font size
- or selectes some rows, deletes them, then opens right-click
"row height" dialog, press ok
Result: User B jumps to the selection of user A
Expected: no jump
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia35377771df6b04584eebb76c25290482b7a4b93
Let clearOldQuarantineVersions() remove quarantined
files only when necessary and per the config settings.
Change-Id: Ie1fb18c02d61a710546e9b5962ab8b7973c2066e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
* These changes are made primarily for reading the hyperlink data from the document in readonly mode.
* Added readonlyclick event.
* Added readonlyhyperlinkclicked event.
* And the handlers for these.
When user clicks on document in readonly mode, a readonlyclick event is sent to the server.
Childsession checks if there is a hyperlink at the clicked location.
If so, the information of the hyperlink is sent to the client.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I9c104a1ec770491725337b9bbb1e2d1c2851321b
it did not make sense to check for selection if we are unselecting before selecting
problem:
when already selected comment try to modify,
it will not rearrange replies in the thread this caused
overlapping of the comments and bad user experience
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I276c34301b45951a7051018770e21b4970603861
use strict datatypes for the properties where possible,
also allow to add new properties dynamically
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ia2eb850f61031f91b0e37339475e1ca4e768dad1
this caused problem when new doc is loading and we are settings up comments,
but they are not initialised and marked as being in editing.
i.e: this will cause problem with showing reply count(in collapsed view) initially
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ia688ca0bfc37dd925bd74dc5826d43fdb37c81db
The intent is to eventually replace cy.cGet and some other helper
functions with getFrame, which is cleaner and has better logging on both
pass and fail.
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: I911a5552d69634495a9036d020754351665419cf
So std::ceil isn't doing anything useful since:
commit dce6c18fb4
Date: Thu Aug 30 17:40:42 2018 +0200
Calculate tiles-on-fly limit a bit more precisely
Leave this case unchanged.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I6d11c9b912facc26ad775fc916012b529ed5b0fa
here std::ceil is operating on the result of an int divided by an int
so the input is already an effectively floor-ed int result of the
division so the ceil doesn't do anything
so we end up filtering out some of the invalidates for tiles in frozen
panes.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ibfb25fdfdfb84735ca9410f8250d2e5b9fa1070e
- in Compact/Classic mode typing text are dark in darkmode
To reproduce:
- change to dark mode and select Compact mode
- type in input field of Font or in Font size
- without this patch color will be dark in dark mode
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I4510001cfdf26acf8419eb0aa4ee3611b0a51b09
When Pivot table dialog was used and we drag and drop
elements from list to other list in Firefox - then
we sent userinactive message because we lost focus of
a window. Don't do that.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I03f1b8a72e4f318034569d4fffe496f32c5a8a51
We automatically add allowed wopi hosts to lok_allow.
But we expect to have plain host names, we need to remove
protocol if it is present.
Example:
wopi - group - host: https://.*\.mydomain.com
we need to add: .*\.mydomain.com to lok_allow list.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I80bf3b7c25c0df15e422cd8369eceaddbb588e26
I noticed that it directly modifies this._visibleCursor
which should be our own cursor. So it was not clear if
modifierViewId === this._viewId check if something left
from the past or that message can be received with
different viewId...
It seems that received viewId only tells us who "triggered"
the cursor movement, but position in the message is still "our".
It is used with different viewId in Writer but not in Calc.
protocol.txt comment about the message:
The payload contains a rectangle describing the cursor position
and the id of the view which triggered the invalidation. JSON payload.
and seems to be introduced in:
commit ffd7151443
Date: Sun Apr 8 00:00:53 2018 +0200
Writer: View jumps to cursor position even if it is moved by an other view.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Idf2598221845e15effe576a94bb1d39759ae7d58
- Fixed filter by color options which had Checkboxes
- it should have radio buttons same as we have in LO core
- it also makes sense because we only need to apply on filter by setting at a time
Steps to check patch
- Open .ods file
- add some dummy data in diffent rows but column should be the same
- click on the top cell of dummy data
- got to `DATA` tab and apply `AutoFilter`
- open auto filter popup and select filer by color
- compare previous version with the current patch
- check same thing in LO core
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I00b4d84e5117b3c1f05fbc37c61331d2c3bc2a31
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
problem:
1. Duplicating slide with comment will not have any comment
2. Rearranging slides, causes comments to stay with its previous slide location,
i.e: if earlier comments were on the first slide and they are rearranged to be nth slide,
comments will be displayed on the first slide
3. Deleting slide, displays comment on the next slide
all these problems are just display problems in online, if you reload the document,
comments are displayed correctly.
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ie494761802f133f5f433053456edfd7d55d1312a
As discussed [on Matrix](https://col.la/suppresseslintindevelopment) the
set of things we want to pick up in CI and development are different.
Specifically, there are some things that only get in the way during
development but should not be allowed in merged code. Examples are
'debugger' statemens, dead code (e.g. resulting from 'if (false)') and
unused variables.
After #7822 there are no more eslint warnings, so we can use it as a
separate state for these issues that should only block in CI.
This commit make make check run eslint and fail if it receives any
warnings, and changes those 3 errors so that they only emit warnings.
It's expected that there are more annoying warnings which I've missed,
if you have any please make a followup change!
This commit explicitly does not deal with formatting-related
issues (e.g. requiring single quotes for strings in eslint) as though
they can be annoying there's no reason why they should change between
development and master... another followup to improve linting experience
could be to use an autoformatter so the computer fixes the formatting
for you, however that's out-of-scope for this commit
Change-Id: I036afac5ef5056a9cc2effc21e31165aa1436ad2
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
- we need to remove 'tab-drop-area-active' class
after a sheet tab is dropped, otherwise drop
zone indicator will still be shown after dropping
- this fixes the bug from f8433d323d
Calc: improve drag&drop functionality of sheet tabs #7846
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: Iff7ea455452c431907cc7534cbd111e7b4f037d8
This is backwards-compatible and core.git autogen.sh executes
configure, so it eliminates a pointless difference.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I897bd2f6464201a19e26e55006cd52727abdfc41
This relies on core change I5e6c93c64af0d201a8ec045fea5546e189baca74
(https://gerrit.libreoffice.org/c/core/+/160313) as the logic to keep
the cell focused is from there.
Here we set the new option when there is an onscreen keyboard hint given
by ui_defaults or a postmessage. As ui_defaults are set at page load, we
need to wait to send our message until we're initializing everything
else to set our options. Additionally, we need to use the socket
directly rather than sending this through the map so that this bypasses
things like readonly mode
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ie6d80c0e1ebca607b9d705b673ab8008fae39260
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
- drop zone indicator added to the left of all tabs
- additional drop zone indicator added to the right
of the last tab
- added drop zone container at the end of tabs
for the last drop zone indicator
- div#drop-zone-end-container element also adds
a space to the end of the tabs so that the last
tab can be seen easily after scrolling to the end
Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: I25a87bc1798b94c5f294532d308cd46292ef1795
Touch unification (b3bff28bed, change ID
I9016fc15ad3ccb3664af348fdcdca006495b0778) was a rework of the input
system to better support touch devices, but unfortunately it caused some
fairly serious regressions. This commit fixes the following:
- Triple/Quadruple clicking was no longer recognized on non-touch
devices.
- There were some issues recognizing wrapped events
- Pens were considered to be touch devices, but this broke some
remote/virtual machine setups. It's possible that this change will
cause a regression for apple pencil users. I plan to get an Apple
pencil to test whether preventing pens from being touch devices breaks
the Apple pencil workflow instead
- manualDrag was taken to mean "is on a touch device". This is only
almost true, causing some input to be incorrectly ingnored when it was
not
- manualDrag and _manualDrag were confused. They affect different
things, and we now recognize this
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Iab0d3bcca588eaed14469597868a9c4e2dcf8488
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Added build rules for coolwsd-inproc and some run command to use it.
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: I4138ff7337bc354b0221070105dd34ea9ef19691
Removed all uses of KIT_IN_PROCESS, used Utils::isKitInProcess()
when necessary. Also removed the now unused parameter 'limit' from
forkLibreOfficeKit.
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: I068d3f55ab49076590f111847c87b3188f4d25d0
Added code that spawns forkit and lokit in threads instead of new processes.
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: I6b6ad6dccfedaf28ebd0d68851205c540b9a0317
Extract some functions from ForKit.cpp and COOLWSD.cpp to new files
so we can do a kit in process mode without using ifdef directives.
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: I7529f8f46a8026318244666b27d1ce72ed5ad4ca
They allow respectively to switch to fullscreen, or to start the
presentation in impress in fullscreen
Action_FullscreenPresentation can get the following arguments:
- StartSlideNumber: the slide to start at
- CurrentSlide: start at the current slide
The options are exclusive to each other. StartSlideNumber takes precedence
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: I4d97eadf8c119e70e5738df4063d209feb5db793
show() can hide modify textbox, this broke comment autosave in impress,
but as precaution show doesn't need to be called on newly added autosaved comments
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I13fdeb265f46cb9b8786f62a2d6e7e5c4e492f00
To not depend on external objects to store information.
Also use more typing.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I410b6679ef5e2a7c4f5e73217d5062864a73bc4c
This reverts part of commit 93bdcc349b
Annotation: revamp comment autosaving
Let's keep it less changed from the previous stable version.
This doesn't seem to have any impact.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5261b4c8e78a9310884017bf314d720265892fbd
- we need to check if received comment is "our" autosaved one
- without that we were showing comments from others on the
screen when we were in "autosaved mode"
- remove "interval" to make it more deterministic
This fixes regression from commit 93bdcc349b
Annotation: revamp comment autosaving
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0319de0eea16e715e799a6ac1163d78cc1a07654
if (command.viewid) will not allow set to 0.
This is fillowup for commit f3baeb25b1
Update viewId in Writer after recover from idle
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4b8d40c2b7aa122e0f4710261d10314a25d521fe
now as we only allow one comment to edit at a time,
we don't need to check if any comment is being edited,
we can hide all comment except the one being edited
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ibee2b61fc6ba873231a05e5e1d2dab210491c68f
from idle
The following scenario was affected:
- user A and B both goes idle
- user B starts typing
- user A reconnects, all tiles updated by user B were not getting
reflected for user A
Mismatch of canonical ids was causing the issue. On reconnection,
tilecombine messages were sent before uno:ChangeTheme can update the
canonical id on server side, therefore the received tile cache from server were
from old canonical id 4a8974d107/wsd/ClientSession.cpp (L1379)4a8974d107/wsd/TileCache.cpp (L482)
By reseting the previousTheme on connection we make sure there after
canonicalidchange we invalidate all the tiles
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I874bfe0bd71d176bacf0c7aa768e49613535ebd5
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
When user switches to dark theme, previously requested tiles' normalizedViewIds may need to be updated.
Issue:
Users sometimes were getting tiles from the wrong theme.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: Ie3324eb3f4879da5bfd0738513409e190422a9c0
comments can not be committed when user is on different slide/sheet
then comments origin.
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I5c2a92da1a8e9788fcc3abc72f697873c7100993
- Update only row or cloumn section based on isColumn value
- it will not update both section if there is only need to refresh only row or only column
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I7d614528195f0d7b0dfd0a1afa865cc890a35c2c
Bug:
When a parent and a child comments are removed then user reverts the action respectively:
* Child comment is revived first and it cannot find its parent.
* Add a possibleParentCommentId to use in case also the parent comment is revived.
* Consider the child comment as a parent until parent appears.
Other changes:
* Remove duplicate call to updateIdIndexMap.
* Remove duplicate call to unselect.
* Remove duplicate call to adjustParentAdd.
* Reorder the 'remove' operation's rows: To avoid unselecting the comment after it is removed.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I2247b23c710236c578b5b5c78d2b7bb45f7a51b4
problem:
while resizing row/column it would select all the rows and column user hovers over
regression from: 87a55af
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: If786c57222b9bb89ac3faa1e645acc223a8dcd7e
disable this with VCL_NO_THREAD_SCALE for wasm
"Yacht.odt" document with lots or large images fails to
render:
Tried to spawn a new thread, but the thread pool is exhausted. This
might result in a deadlock unless some threads eventually exit or the
code explicitly breaks out to the event loop. If you want to increase
the pool size, use setting `-sPTHREAD_POOL_SIZE=...`. If you want to
throw an explicit error instead of the risk of deadlocking in those
cases, use setting `-sPTHREAD_POOL_SIZE_STRICT=2`.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I8b2f994d2d3d23f8a0043f0c7fefa4d5e250b8bc
ClientSession::handleTileInvalidation returns early with _tileWidthPixel
(etc) of 0 because _tileWidthPixel (etc) never get set
These are supposed to get set from 'clientzoom' which the javascript
side sends. clientzoom arrives, but the attempt is made to dispatch via
a thread and during startup there are enough messages dispatched via
threads to overwhelm wasm
bundle.js:56376 ================ handle_cool_message(): 'clientvisiblearea x=-3915 y=0 width=20640 height=7980 splitx=0 splity=0'
bundle.js:56377 Tried to spawn a new thread, but the thread pool is exhausted.
This might result in a deadlock unless some threads eventually exit or the code explicitly breaks out to the event loop.
If you want to increase the pool size, use setting `-sPTHREAD_POOL_SIZE=...`.
If you want to throw an explicit error instead of the risk of deadlocking in those cases, use setting `-sPTHREAD_POOL_SIZE_STRICT=2`.
bundle.js:56376 ================ handle_cool_message(): 'clientzoom tilepixelwidth=256 tilepixelheight=256 tiletwipwidth=1536 tiletwipheight=1536'
bundle.js:56377 Tried to spawn a new thread, but the thread pool is exhausted.
This might result in a deadlock unless some threads eventually exit or the code explicitly breaks out to the event loop.
If you want to increase the pool size, use setting `-sPTHREAD_POOL_SIZE=...`.
If you want to throw an explicit error instead of the risk of deadlocking in those cases, use setting `-sPTHREAD_POOL_SIZE_STRICT=2`.
bundle.js:56376 ================ handle_cool_message(): 'tilecombine...'
The 'clientzoom' never get processed and so
ClientSession::handleTileInvalidation returns early with _tileWidthPixel
(etc) of 0 because _tileWidthPixel (etc) never get set.
this std::thread dispatching of messages is similar to seen in
gtk/mobile.cpp in similar code, and also existed in
android/lib/src/main/cpp/androidapp.cpp before getting replaced
in:
commit 155718796e
Date: Fri Jul 19 16:43:44 2019 +0200
android: Fix a threading / ordering issue.
follow the same simpler android model here.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I3b5e57b3d91bb80fbae90b269300581825518d7f
- We should fire `active` state call back for selected color value in filter by color
- it will directly apply filter to columns
- this change is consistent with LO
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I90977cff67cda1bca78c7d60c132bd0685cadbaa
We were using old cursor data after recovering the
view from idle state. For the user there was impression
that view jumped at some point - caused by other user
action. But it was just an update to real cursor position
which scrolled view to it, because previously we were showing
some other place in the spreadsheet.
Steps to reproduce bug:
1. Open spreadsheet with 2 views
2. B should have cursor in the bottom part of sheet, let's say row 600
3. Wait for idle in both sessions
4. Open the same spreadsheet with some other user C
5. C does some action on row 300 and goes away (closes tab)
6. User B activates view and selects row 600
7. User A activates view (he should be at the top still)
8. User B changes font size using dropdown in notebookbar, or double
clicks on any row header
Result: view A jumps to other place
When we initially connect to the spreadsheet then
requestCellCursor is called in onAdd. Also
_gotFirstCellCursor is not set.
Let's do the same on reconnect so we will have similar
effect to clean startup.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I84c6ab705bc83d5c0d5c80325ec67c3f55aa19d8
Since core commit 690d4eb71509649ad147cfe60f5b97e2cfaaa519 (tdf#43100
tdf#104683 tdf#120715 sw: cursor on spaces over margin, 2022-07-04)
the cursor travels outside of text body area in Writer. Desktop view
doesn't follow the cursor in that case; the problem in Online was
that its view did follow the cursor. This resulted in the following
scenario:
1. Have a document with a thousand of trailing spaces in some line,
before a word that would appear on a next line;
2. Put cursor to the beginning of that following line;
3. Press backspace (or left arrow key)
This resulted in the view jumping far to the right, with the page
being completely out of the view; the user only saw an empty screen
without any text, which was highly confusing.
Fix this by limiting the coordinates in _onUpdateCursor; use known
document size for that. This could still be problematic in case the
document has different-sized pages: the current page bound could be
narrower than document width. Yet, this seems to not be a big deal:
the view will likely still include part of a document, giving the
user a clue. An alternative would be to pass current page size with
invalidatecursor message from core.
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I4d6cba7105d5aa2d1847bcb3994f93248b3f5ec6
Adjust height values of the slide sorter content element
Change-Id: I04fdb5f89f70b703385e61253bf8ea8a387a65ea
Signed-off-by: Henry Castro <hcastro@collabora.com>
There was a bug in Writer not allowing to successfully reconnect
after idle state if we were not a first view in the initial document.
Let's update view id even if document size wasn't changed.
Added also additional error logging to be sure we never use -1 viewId which is
a default "bad value" when we enter some unwanted state in the core.
Steps to reproduce:
1. set per_document.idle_timeout_secs to something small, eg. 30, so sessions time out quickly,
2. Open a document with 2 sessions (remember which one was loaded first - A, important!)
3. wait for it to idle out in both sessions
4. activate SECOND session (B) by click on the document area
Result:
in the browser console you can see an exception:
Exception TypeError: this.map._viewInfo[this.map._docLayer._viewId] is undefined emitting event viewinfo: [{"id":0,"userid":"2","username":"LocalUser#2","readonly":"0","color":411298}] cool.html:359:37
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I23775230e169f61cb816b819f2dea56e293b20e1
To manage latency, we need to keep the amount of data-in-flight
manageable, this was previously done per-tile - however this is
less useful in the era of small deltas, and seems over-complicated.
Instead track processed tiles by their wire-id to save time,
space & bandwidth.
Change-Id: I1039d8d4ca96fb172278a824fe1ffd55d9fff23e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Accurate per client tracking of wire-id and avoidance of duplicates
is vital for good delta application, and is done precisely by the
ClientDeltaTracker class.
The inaccurate, _oldWireId tracker imperfectly tracked wireids of
the last tile per session, and used this integer for the boolean
oldWireId used to determine whether to create a delta; in an
un-necessarily complex way.
Instead we more accurately use the TileCache to determine if we
already have a key-frame, and if so use this to encourage Kit to
generate a delta if possible. there seems to be a potential race
though between the Kit's delta-cache size, and what keyframes
we have in the TileCache requiring further investigation, but
this is not a new issue.
Change-Id: If6cec4c1da31f7b715336c60d1dd6f358e1ef6a4
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Instead throttle rendering only based on the number of tiles on
the fly down the coolwsd <-> browser socket.
It is almost certainly better to let the Kit process sort and
prioritize rendering with a more holistic view of all rendering
requests, and to elide duplicates - rather than to stack-up some
requests in coolwsd.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I566959306815ddc2742a0fe2694df6a1371c6852
This is in line with MOBILEAPP and GTKAPP and
is independent of __EMSCRIPTEN__.
Replace all application-specific cases, leaving
only toolchain-specific ones (such as include
protection).
Change-Id: Ic44288aa5ace51e0a8b54566170c19120f7bf0dd
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now have at least one C TU and enabling rtti for
the sanitized build breaks things. So we don't enable
rtti for C sources, which was done in error.
Change-Id: If7624993ceb9e7af7aa8ffe3df69069ea4dd153a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
There's a bit of a mobile/wasm munge with wasm considered a subset
of mobile in some places which should be unwound a bit, but for the
purposes of usable wasm by default, don't assume that wasm has an
onscreen keyboard so we don't lose keystrokes on assuming that
there will be an onscreen keyboard appearing when we lose and regain
focus.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I0baae0d414ce9aafd1c27d74bcdad2276d104ee5
the default suggestion uses --enable-qt5 which isn't needed for
LOKit and breaks finding custom notebookbar widgets so online
notebookbar doesn't work with it.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I644924a0f8cdb01d4ec20d70ff7aedb27a2c899f
- previously, when document was getting idle, it was
showing a snackbar "The server is disconnected" which
unnecessary plus the snackbar was persistent even
after reconnection.
- There are two scenarios to be tested,
1. It shouldn't show snackbar on idle
- Set per_document / idle_timeout_secs to something small, eg. 30,
- Open a document, and wait until it idles out.
- make sure it doesn't show "The server is disconnected" snackbar
2. It should show "The server is disconnected" snackbar when you shutdown
the server, when you start the server again snackbar should disappear
Change-Id: I4ccc93dabb4dd260338d5a941b18ebaf8e42b1ad
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
it was previously required to handle comment scrolling separately but not anymore
it was introduced in a3e59d1
current problem:
when a comment is very long that it overflows and has a scroll bar,
it is only possible to scroll using the scroll bar and mouse wheel didn't work
fixes#7735
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I6d9f85c61b837f86e021a795e8af43b375a318d1
Original approach before comment autosave:
When we save a new comment, original DOM element which user was editing
is removed from the DOM and new comment DOM element is created from the data and message sent by core.
Previous comment autosave approach:
When we save a new comment, original DOM element which user was editing
is not removed but kept in editing mode. We register the comment message sent by the core
but react and create new comment DOM element only after user clicks on save or cancel.
This lazy initialization caused many regression due to juggling of the new and old comment DOM element.
All these problems were in JS side only, reloading doc would bring comment in correct state.
This approach gave smoother transition between different comment states without any flickers.
New comment autosave approach:
Simple as the original approach, when comment loses focus we save it as normal comment.
When new DOM element created via core comment message, we immidietly set it to edit mode.
This approach may have a little flicker when we replace old comment DOM element with new comment DOM element.
Overall this approach requires less condition checking which makes it easy to maintain and hopefully reduces any regression from previous method.
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I4098085825ede65cdbf2e2243fc4d2bb1f63c716
Helper that is easier to use as has "options" parameter
not a long list of possibly optional ones...
It is first step to refactor old UIManager.showInfoModal
helper, which is less flexible.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I34eae39cab583985ad3d940aa025aee0a374e25e
If administrator doesn't allow some URLs in the coolwsd.xml
under net.lok_allow then when pasting webpage with images
- it might result in missing pictures. We should show the
user what happened.
User can click "don't show this again" to avoid annoying
dialog on every paste.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iec9035860b1c6a332420defd539000e8854447c9
This is a workaround for the bug, when a txt or a csv file was opened,
and there were both the classic menu and the menu of the notebookbar
at the same time at the top of the window. This bug occurred because
regardless of the user's UI mode setting, the read-only mode has the
classic menu. The fix also have a side effect, that is better than
the original symptom. Now when a txt file is opened, and user starts
editing it, the Zotero buttons won't be on the References tab. I
think it's a good trade-off, but FIXME.
Eventually, when we won't have the classic UI mode any more, this
problem would be solved better, for all corner cased (txt. csv, pdf,
read-only shares etc.)
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ic3f95c02a0b75136a0b8069fa8297ed129b63865
otherwise the carefully retained startup log message don't appear
in a non-debugging online version
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie4caf3462539e07f14f6c84bccab47fcbe9d5203
switching tabs should not send events to the core
notebookbar is online-only widget
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I39c487d3c91f1fe858438e03fd9369f3dc571f52
with in in place the sizes are
-Os for core and online
du -h online.wasm 155M
-Oz for core and online
du -h online.wasm 145M
and a warning of:
em++: warning: running limited binaryen optimizations because DWARF info requested (or indirectly required) [-Wlimited-postlink-optimizations]
without gseparate-dwarf the sizes are:
-Os for core and online without -gseparate-dwarf
du -h online.wasm 133M
-Oz for core and online without -gseparate-dwarf
du -h online.wasm 119M
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I91586abe0e52f6de20d0f04636bb5a2be93d92be
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
- Now we can check/uncheck by clicking on label
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I03c5e866d89f61a93b07dbbd1f5bd7752f5c723f
so the launching site can query if wasm is enabled to see if it needs to
insert the required headers, so we can then in turn make it optional on
those being set to also require matching headers.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Icd73081809abb8098c21bc61a8357869db45ff6c
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ifa40864a332718f9c58335e6d950149673d03f10
A small typo in Class name which is cause for `FontColor` icon not working in dark mode. it is not fully related here but pushing that as a commit in this PR :)
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I516220240d204302074f72e20d98df7591cb00cb
- there are 3 cases we need to consider
- 1) data. Icon if present, then set Icon based on its value.
- Here 2 child cases 1) data.Icon can be direct an image URl in that case we will not perform and operation directly use `buttonImage.src = data.icon `
- if values is just an image identifier like lc_save.svg then will call setImage method as we do in many other case
- 2) data.Image if present the we directly go with data.Image URl
- `buttonImage.src = data.image;`
For ex:
In ODP file => sidebar => Line (section) => width (property name)
Here we are setting the icon based on `data.command` instead of `data.image` that makes icon different
- 3) If both above case is not valid then byDefault we will go with data.Command
- `L.LOUtil.setImage(buttonImage, builder._createIconURL(data.command), builder.map);`
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ia112202fdebec2f3529f3bbd19d46084d4e0dc1a
debugging some intermittent failures in UnitBadDocLoad I see that there
are some duplicate jsdialog messages appearing which is easily
reproducible by just opening test/data/corrupted.odt in online.
probably has been like this since:
commit 7f70197723
Date: Mon Dec 28 11:37:27 2020 -0400
kit: enable input process when early dialog show
and possibly not the problem I was originally trying to chase
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I7aa342e86ad9ae73082cb71f1b2c9b2bf0f212b9
This allow being able to disable pick up of a local image. Handle the UI as well.
To be used with EnableInsertRemoteImage.
Return DisableInsertLocalImage: true as part of the WOPI CheckFileInfo reply
Default value is false (enabled)
Added an 'insertremotegraphic' button to the classic toolbar for use when
it's the only option.
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: I1925f804433a7bda6025cb65b0943d78927bea15
Also add state dumping of tile on the fly statistics per session.
Change-Id: I8413cdfd489be3c238738f95d9d5c4aa177ff262
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
To reproduce:
./clientsession_fuzzer -max_len=16384 fuzzer/data/crash-32e5136d2291e6c5fa99aa5942acded42b66a528
Failed with:
#7 0x7f1aeb9c9cf1 in __assert_fail (/lib64/libc.so.6+0x42cf1) (BuildId: f732026552f6adff988b338e92d466bc81a01c37)
#8 0x55a9f13968a5 in DocumentBroker::forwardToChild(std::shared_ptr<ClientSession> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool) /home/vmiklos/git/collaboraonline/online-fuzz/wsd/DocumentBroker.cpp:3613:5
#9 0x55a9f1676a9a in ClientSession::forwardToChild(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::shared_ptr<DocumentBroker> const&) /home/vmiklos/git/collaboraonline/online-fuzz/wsd/ClientSession.cpp:1414:23
#10 0x55a9f166f96a in ClientSession::_handleInput(char const*, int) /home/vmiklos/git/collaboraonline/online-fuzz/wsd/ClientSession.cpp:1100:20
The reproducer was originally added in commit
aefc65465b (wsd: fix crash when downloadas
has not enough parameters, 2020-02-21), but now it also triggered this
assertion failure problem as well.
The brave assert was added in commit
b2aff3e817 (wsd: pass ClientSession to
forwardToChild, 2022-11-26).
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I4a0adda49aa2d24925d448fa5753509917d2585a
New postmessage `Show_Command` and `Hide_Command`.
Pass a command name (uno or otherwise) in `Values.id`.
Will hide the corresponding toolbar, menu and notebookbar items.
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: Idaa86f7a936a282c636fa0532ab165c6977db873
Currently translated at 99.6% (537 of 539 strings)
Translated using Weblate (Icelandic)
Currently translated at 71.0% (332 of 467 strings)
Translated using Weblate (Icelandic)
Currently translated at 99.2% (535 of 539 strings)
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/is/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/is/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib8efb2ada68af1b958b2b72f023dcc2ff5900bb1
Invalidations were not cropped to the split pane, such that large
invalidations that crossed from the mane pane over another top/left
split pane, would cause partial re-render, flicker and other problems.
Regression from: 0453140f61
Potential fix is to have a complex multi-rectangle clip region, or
to only do this for simple cases, which are common: of invalidation
within a single split pane, doing a complete re-render elsewhere.
Change-Id: I255806286f6c80a233d4c6ade2bcb4e12f2bf753
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
This can happen like this:
#8 0x7f14fdf4ec86 in std::terminate() (/usr/lib64/libstdc++.so.6+0xb7c86) (BuildId: c74eca671e2dd0f063706372d103f8acef88f1e3)
#9 0x7f14fdf4eee7 in __cxa_throw (/usr/lib64/libstdc++.so.6+0xb7ee7) (BuildId: c74eca671e2dd0f063706372d103f8acef88f1e3)
#10 0x55ddc5b906d2 in Poco::AutoPtr<Poco::Channel>::operator->() /usr/include/Poco/AutoPtr.h:232:4
#11 0x55ddc5b7eb07 in AdminSocketHandler::handleMessage(std::vector<char, std::allocator<char>> const&) /home/vmiklos/git/collaboraonline/online-fuzz/wsd/Admin.cpp:236:13
Note how LOG_ANY() assumes that Log::logger().getChannel() is not
nullptr (so the caller has to check for it), while the more typical
variants with a log level like LOG_TRC() already do a similar check via
LOG_CONDITIONAL().
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I5e1379f33e6640fd07de673ef0d07b1d4d611c89
- uses new lok_allow setting to provide such list
- for backward compatibility uses also all post_allow and storage.wopi
entries
- Used for example in: PostMessage Action_InsertGraphics,
=WEBSERVICE() function, external reference in the cell
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib930e0119d4ea124b9cd565f6b3683310b1b3ced
- now setImage method will handle the refresh of icons when theme change to Light/Dark
- added listner to setImage method
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I0529588487c2436d53585e63a2467fe0a917adee
- All Icon HTML structure shoulb be same as other icons
- Most of the places we have this way to add icon in DOM
- <Button> <img/> <Button>
- This patch is to change for some icon with drop down which is not consistent with above structure
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I1a82bc4b3dfbca15f62bfe111e36804c754da539
Before it was impossible to correctly target one dimensional menu
entries such as Help, About, Feedback and Latest updates.
This affects places such as Mobile: hamburger menu where now menu entries
get automatically assign an additional css class based on its data.id.
Note: we could also employ the same thing within explorableEntry if
needed. But that's outside of the scope of this change.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib50cf1e29f4fae072b8739c76e7facaa540c0ad5
Also use some allowed path for HOME and XDG_CONFIG_HOME so we start correctly.
Setup Work path for pdf/epub export.
Enable osl allowed paths for nocap only.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4fa058fe5fabc5eafdff7630dfcc72dedfe22e4a
Also move the nocaps TMPDIR into the jail folder, to sandbox better.
Change-Id: I161695b4585a2c6003779caa88152b744d36266b
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Similar to commit eb5c86a4d3
(DocumentBroker::saveToStorage: guard against nullptr _storage,
2020-10-26), with the same input.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I17ac2bc12ba086d16ccbf3d5c758e081a32cbf5a
Thickness dialog has an image in. When the image render is delayed we
are getting image size 0x0. That wrong size caused wrong resizing of the
parent containers. To show better result, we need to get image's actual
size from core.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I207fd2fcca63deee21f51ef34c1ad670e15afd87
Use new functions for querying the properties of comments.
Added new functions like setAsRootComment, getChildrenLength etc.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I9b655f0e6d50050f9e509ba4f822e1d8681a4a69
* When a parent comment is removed, the children of that comment are not informed.
* We have adjustParentRemove function.
** Function wasn't handling the "parent is removed" case.
** Function was handling the "child is removed" case in a wrong way. Children list has pointers, not indexes.
* When a parent is removed, child wasn't shown. Now we re-set the display property in case it was set to 'none' before.
* getSubRootIndexOf function was trying to continue with index=-1.
On mobile, a reply was added twice, fixed.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: Id8f95bbe1cb78bf93bf35fe73a6e86203455691c
- the HttpEcho build broke with commit
08d9081280 (net: don't try to set
TCP_NODELAY on local Unix sockets., 2023-10-30)
- fix an unused variable error from commit
0631593c96 (wasm: proxy wopi documents,
2023-11-06).
- the undefined reference to COOLWSD::ForKitProcId probably went wrong
in commit 3f46c1db44 (kit-in-process:
pure re-factor to a run-time function to flag this., 2023-11-20)
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I0cf06d188860bdb2f795485a91c7634b596255aa
The container '#presentation-controls-wrapper' element should
adjust height value when '#presentation-toolbar' is shown.
Change-Id: Ia44006e5b99f0ec08632cc171a8e23e9b6f67614
Signed-off-by: Henry Castro <hcastro@collabora.com>
This reverts commit 9b3e115fb5. It was
meant to have been dropped without being merged, but #7619 was merged
with it in
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I698c7a0aa680a1b8155c08c8d292f609522fe347
Make sure we don't expect response from server for online-only component: dropdown which doesn't have corresponding widget in the core
fixes regression on close from:
commit a23adac78c
browser: fix undefined property 'isPopup'
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I005647c77da3a866cec88a78f03dd409a098a469
StorageConnectionManager centralizes the
connection creation and management of
Storage sockets and related bits.
This is needed as we move to a more async
model of communicating with the Storage.
Change-Id: I7a44c95c113bbc536e922b5aa3f7cf9b71917c22
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This ignores the hints from commit
f62f365a0e when not using calc. This is
because they were causing an undefined reference in WASM.
(window.keyboard.guessOnscreenKeyboard). To me, this looks like a bug in
our WASM implementation, as I think WASM should get window globals, but
as it's blocking us we're partially rolling this commit back.
I expect to revert this revert as soon as it no longer breaks WASM.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I91bab273d400bf7925e338631e74dabc8a01e529
problem:
In a spreadsheet, click on a cell with content,
In the formula bar, select the content in a way that the mouse key is lifted outside the edit field
Note how the formula bar doesn't get into edit mode, but you can still edit the content
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ib4f193b897d57e0ffa9c3bfdd598e0c3c4201195
problem:
In Calc click on a row header and drag the mouse. The selection does not follow the mouse,
selection only appears when you release the mouse button
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I510f35d9f61fca63a619e83c04ff340f9578f5d2
- specifically a case where coolwsd is cleaning up the document
we don't want to give up on clientside and show the error message to
user
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ie75fa3e19f97ca18acc8e881813d6c617fc9f7b7
- Allowed downlaod options for PDF/PDF as /EPUB
- PDf/PDF as/EPUB will be downlaod in read only mode
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ic6e0c4a16fa5dffc61e61fd4ece9aeeaec1450b9
- We now have a state for hidden buttons in UIManager
- Shortcut bar makes use of it instead of maintaining its own.
https: //github.com/CollaboraOnline/online/issues/5957
https: //github.com/CollaboraOnline/online/issues/7517
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: I719f27063f01e4d76742358189b080087881ab7c
Avoids a number of compile time conditionals and adds flexibility.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Iff6b294b504526e70715e436ad33d47c8df4752c
This enables the kit-in-process re-factor.
Change-Id: I93eb0a721945fb7b03e145b6c9d037ef3ce62589
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
L.Browser.touch is sometimes nice, but it's ultimately a flawed concept
to use it for input events. Using L.Browser.touch for input handicaps
people with mice if it's too liberal in what it classes as touchscreens,
and handicaps people with touchscreens if it's too conservative. There's
also no sweet spot: it's impossible to choose correctly if someone is
using both a touchscreen and a pointer device, as there's no right
option!
Previously many of our event handlers and some of our UI was gated
behind L.Browser.touch. This commit adds a new "window.touch" property
which is used instead. It has functions to help with event detection,
allowing you to easily make event handlers that work for only the input
devices they are designed for, without gating them behind feature
detection. This has the added bonus that - as you register all the
events - switching between a touchscreen and pointer is now not only
possible but already implemented!
For cases which don't have reasonable events to tag onto (e.g. the
teardrop for cursor movement) this commit adds "hasPrimaryTouchscreen"
and "hasAnyTouchscreen" which use the CSS media queries to detect if
there's a touchscreen attached to your device (either as the primary
input mechanism or at all). This works a lot more similarly to
L.Browser.mode, but being dynamically updated allows you to effectively
swich between touchscreen and not at-will. This still has all of the
disadvantages that L.Browser.touch did when used to register event
handlers, so my advice would be to avoid using it with events.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I9016fc15ad3ccb3664af348fdcdca006495b0778
problem:
some times we order comments before parent-child relation is established,
this caused reply count not being updated correctly for other users
steps to reproduce:
User A open ODT, let us say already with comment or add one, and keep Sidebar open so that comments are short.
user B opens the same ODT with full comments. adds reply
User A does not update ticket number, does not have +1
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: If3360c8dd938c6bd177764d3c1383d7f3f845990
This is safe to do as it's not interactive, so it happens synchronously.
The matching uno command was added on core.git co-23.05 in commit
1f5c20352725cd6133e68e80e8523d865006161f (sw floattable, delete UI: add
an uno command to unfloat frame from context menu, 2023-11-17).
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I74736c7d589c2062a8e9255a42f81bf790b7d3e3
The PopUp dialog is not closed, and side effects
are unresponsive key input
Change-Id: Id72ef0c6d081aa73acb39a07eb3e8b33d0e8dc85
Signed-off-by: Henry Castro <hcastro@collabora.com>
problem:
User A writes Comment 1 and saves
User A replies to himself, write something, click away to autosave, Cancel
user A modifies Comment 1 and OK - comment disappears, although it is there, seen after reload, but without modification.
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I5d83936f26939b5a05a0ce3099c01923a55c9606
The ThreadPool::work function can get its condition signalled -very- late.
With bad timing, this can occur after all the work is done, and when the
next batch of work is being fed into the pool.
This can mean that it takes work from the queue, and subverts the:
bool useThreads = _threads.size() > 1 && _work.size() > 1;
check in ThreadPool::run - which can believe we are in a single
threaded, single tile mode - and not wait for this thread to complete.
That's not good [!] so ensure that threads are only runnable during
ThreadPool::run.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ifebb0f15cbb4c22ef33ffba06e7c6c87493818be
so it would be use on the other metrics for lookup with promql group_left
Change-Id: eaba5e26f99b4cb0843c16f6f5b840c6
Signed-off-by: genofire <geno+dev@fireorbit.de>
in:
commit 24f0819337
Date: Wed Jul 12 10:09:10 2023 +0100
tile debug: render updates as well as deltas in the tile.
one is typo for the other
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I9cb27d7912aa86373b8ef399fca442f85cfd69fb
- will fix Misaligned ui-tabs in mobile wizard
- also added scrollable property that will handle more fields in tabs if it does not fit into screen
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ib982a59c141d937c7f92eb9684b91fc7f2548df5
Remove unused co-ordinates parameter, and unhelpful L.Log call
locations, ensure that all protocol messages are logged.
Increase the buffer to record startup and replay it for easier
debugging after startup.
Now when enabling "Protocol Logging" in the first minute from
document load, we get:
INCOMING[!fullyLoadedAndReady].statusindicator: find
INCOMING[!fullyLoadedAndReady].statusindicator: connect
INCOMING[!fullyLoadedAndReady].statusindicator: ready
INCOMING[!fullyLoadedAndReady].perm: edit
INCOMING[!fullyLoadedAndReady].filemode:{"readOnly": false, "editComment": true}
etc.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I5d2a8639e8038dbcc31d6e8fd1b8f8ebf2fff7bc
presumably a regression from 158fe2f93:
Trying to init LOKit cause mysterious runtime error...
Change-Id: I28603a98a7c9015afc76d46a302a23ccf4ece261
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Tabbed mode doesn't have a menu bar, instead it has tabs. These can't be
hidden. Unfortunately, the post messages to hide the menu bar have the
side effect of hiding the tabs. This commit prevents the tabs being
hidden when in tabbed mode, and shows the tabs again when switching from
compact mode into tabbed mode.
When switching back from tabbed into compact mode, the state that you
would like the menu bar to be in (hidden/shown) will be remembered and
restored. This includes any postmessages that were not acted on while in
tabbed mode.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I1177903fe965e354538e6e7bbc3c83af3177938e
Previously, when using the Collapse_Notebookbar postmessage or
equivalent ui_defaults (SpreadsheetToolbar=false, etc.), particularly in
compact mode, it was possible to additionally hide the menu bar. As the
button to show the menu bar is on the notebookbar, this meant that you
couldn't reactivate either notebookbar or menubar until you refreshed
the page. This is particularly annoying in integrators that may not
provide an easy way to reload the page
This commit makes it so that hiding the menu bar automatically
uncollapses the notebookbar and won't let it be collapsed again. Whether
the notebook bar should be collapsed (the last thing done to it was a
collapse) is remembered and restored after the menu bar is shown again,
so if you send a postmessage that will affect the state of the
notebookbar after the menu is shown (even though it will not affect the
notebookbar's state immediately)
Caveats:
- If you are hiding the notebookbar to limit the control the user has,
that's broken by this commit as it makes it impossible to hide both
the menu and notebook bars at the same time.
- The notebook bar will be hidden again when re-showing the menu bar,
however there still isn't a way to hide the notebook bar in normal
use (i.e. without using either postmessage or ui_defaults) while in
compact mode (although there is a workaround to show it- switching
into tabbed mode and then back!). It might be nice to have one.
Other considered solutions:
- We could add a new button that allowed you to reopen the menu if both
menu and notebookbar were hidden
- Not sure there's much benefit to this over just doing what we're
doing here, and it's harder to implement
- We could disable the button to hide the menu bar when the notebookbar
is collapsed
- As far as I know, there's no button in the UI to show the notebook
bar. This would make it impossible to hide the menu bar if the
notebookbar was hidden via postmessage or ui_defaults
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ieab6d72a6be181aba88e9a5b21dda16a369b9e54
When creating NEW bug in GITHUB, there is template text, it includes OS, Browser, Version, but missing is COLLABORA Version.
I am seeing reports with all fillied, but missing that which is most important.
In addiiton, I set Browser with Versoin to be single line with e.g. Chrome 114.
Signed-off-by: Timur Gadžo <timur.gadzo@collabora.com>
Change-Id: I2d88a635474580189eb82a25ff6c55284b36692c
To test:
sudo mkdir /sys/fs/cgroup/memory/0
echo "900M" | sudo tee /sys/fs/cgroup/memory/0/memory.limit_in_bytes
echo $$ | sudo tee /sys/fs/cgroup/memory/0/tasks
make run # and check the log.
Change-Id: I81cf5f6212418d1f900a56cdfe476e1594f4fe77
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
- before this patch used send uno:ReplyComment on every autosave which was duplicating the comments
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I82b41783d97f5651c486011ac105750acf9589aa
this is visible even with hello-world.odt in the debugging overlay where
I have 9 cols and 7 rows visible.
Load hello-world.odt and from the 4th row, 8th col onwards each tile has
a "upd: 1" of an additional empty delta update to the original tile
browser-side:
a) we have one OUTGOING: tilecombine request which which requests an
initial 72 tiles (9 cols, 8 rows)
b) we then receive 72 tiles as requested
c) and browser sends back tileprocessed for each
d) but we then get a series of (38) delta: requests after that which are
unexplained
server-side:
a) on the initial tilecombine, DocumentBroker::handleTileCombinedRequest
sends the 72 requested tiles for rendering and registers to send each when
ready.
for (auto& tile : tileCombined.getTiles())
{
...
tilesNeedsRendering.push_back(tile);
...
tileCache().subscribeToTileRendering(tile, session, now);
}
// Send rendering request, prerender before we actually send the tiles
if (!tilesNeedsRendering.empty())
sendTileCombine(TileCombined::create(tilesNeedsRendering));
and stores what tiles it want to send in session->getRequestedTiles()
before calling sendRequestedTiles(session);
b) at this sendRequestedTiles (also later when tileprocessed is seen from
each tile response from the browser which also calls sendRequestedTiles), then:
c) DocumentBroker::sendRequestedTiles loops over existing requests and drops
from session->getRequestedTiles() both the tiles that it can send immediately,
and those that are queued to get rendered.
d) But it only does this for a max amount of tiles, based on beingRendered, up to
a tilesOnFlyUpperLimit. beingRendered is bumped for each tile not ready yet,
on the assumption that it needs to be rendered.
e) But we already have some getting rendered, and bump beingRendered anyway,
so tilesOnFlyUpperLimit can easily get exceeded on a first page, typically this
first sendRequestedTiles loop stops early, and stops dropping tiles from the
request queue that are already queued to be rendered.
f) at some point we get a tileprocessed and sendRequestedTiles is called again,
the request queue wasn't emptied, and by now it is likely the tile cache has
results for them (which were already sent) and sendTileNow is used to send those,
resulting in additional empty deltas sent for fulfilled queries.
logs will show "Redundant request to subscribe on tile" warnings in this case
Here as a conservative improvement only increase beingRendered if the sendRequestedTiles
subscribeToTileRendering actually does anything.
There is a mismatch in what handleTileCombinedRequest does vs what
sendRequestedTiles does. Maybe handleTileCombinedRequest should leave it
to sendRequestedTiles to do the sendTileCombine, or maybe
handleTileCombinedRequest shouldn't add those tiles to the session
requestedTiles.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I3044f4b3e47f00c680aa5b87dd7bdad2f27e8c73
It seems that datepicker control expects only a language input
in regional property (e.g. fr) instead of language-country (e.g. fr-FR).
Signed-off-by: Gabriel Masei <gabriel.masei@1and1.ro>
Change-Id: I7d5ac40cfa4a72cdc7862a8b4c4d14bdecad6c3b
When a document is loaded the Accessibility Support toggle button was
not set to the right state.
The problem affeced Online when integrated in Nextcloud.
Moreover the button label has been renamed to 'Voice Over' in
accordance with what suggested by NGI audit
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I5bc7d8348397691f469b6274af58e18a8d6d603c
At the moment, we try to detect whether the browser is running with a
touchscreen, however this is very imperfect. It's possible an integrator
may have more information about whether COOL is running on a device with
a touchscreen, so this ui_defaults option allows us to specify. Touch
mode binds inputs for touchscreen devices (long press for menu, pinch to
zoom, etc.) and does not bind the normal inputs (right click for menu,
etc.), so it's crucial to get it on all touch devices and no desktop
devices, as input is severely hampered if they are the wrong way round.
The option is called TouchscreenHint. Setting it to 'true' will enable
touchscreen mode, setting it to 'false' will disable touchscreen mode.
Leaving it undefined will keep our detection active.
This option must be set at page load so we can register the right
events at creation time. Therefore, ui_defaults is perfect as a method
to override this.
This is not a long-term solution. Instead, "The right thing" is to look
specifically for touch events and specifically for mouse events, rather
than using the default hammer.js behavior which is to look for both...
that should be an eventual followup to this. However, this was a lot
faster to implement and helps with the most pressing issue: not being
able to override our detection when it goes wrong.
Change-Id: Id28a156fe352fe6565ce6b472b7aa54d0869c48e
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
This is now safe to show, as it'll trigger the frame insert/properties
dialog, which was converted to jsdialog in core.git commit
355681eead2411d70caf4f52f1b802cf8c61a981 (sw floattable: make Insert
Frame dialog async and mark it as a jsdialog, 2023-11-06).
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I910012286416231d607cf79cc9b3811803c52768
A slide preview tile falls into the special case with early return and
no tileprocessed is sent back to the server, so eventually a
'Tileprocessed message did not arrive in time' will be reported
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Iab85e5eca535ce377508e91cf67f1435e9242bc4
problem:
when user copy cell with formula and paste it outside of online,
formulas are pasted instead of values.
Ideally we should always put real value in client clipboard
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I93af2fffa501c3cdc3d8ecc78d3c44121784d3e8
This allows the creation of floating tables when an entire table is
selected by the time we dispatch .uno:InsertFrame.
Also add a matching entry in the menubar.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ia0614d47275eb8d9127c496a0b06a8993c5f9989
It was reported on some iOS devices that we fail with TypeError
in getCorePxDocBounds - missing this.options.docBounds.
getCorePxDocBounds is used in Cursor class, check if we have
docBounds before use so we don't try to update without valid
data
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia48738edac33ab272e338e23f0d71f7ec4f54086
Currently translated at 63.3% (340 of 537 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 61.6% (331 of 537 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (5 of 5 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 59.4% (319 of 537 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (22 of 22 strings)
Co-authored-by: DPE <danpe_jobo@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-lib/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ios-app/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/nb_NO/
Translation: Collabora Online/Android lib
Translation: Collabora Online/UI
Translation: Collabora Online/iOS app
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Iaabb7ffb88433e624d58dad43f3fbadd5aacd681
Currently translated at 100.0% (537 of 537 strings)
Translated using Weblate (Croatian)
Currently translated at 99.8% (536 of 537 strings)
Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/hr/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I72997ea8388b0047305b9b77ca73cf29b0333f27
- This will fix not to check or uncheck if a checkbox is disabled by clicking on a lable of a checkbox
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I3c6f770058ae1409f56d6bd12f5e7a8cd2441941
* Add a paragraph.
* Select the whole paragraph and add comment.
* Add hyperlink to a word in the paragraph.
* Try to copy the hyperlink via its menu.
* It sometimes doesn't copy the hyperlink.
We are checking if a comment has focus or not before doing the copy operation. This check is for another issue.
I changed the check with "app.view.commentHasFocus" which seems reliable.
Then tested the previous fix.
Also commented out code is removed.
White space change is automatic.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: Ibc2c5e550eb8a3e24b734e0371c87dac44b2ff6d
The new ui_defaults option OnscreenKeyboardHint is a tristate denoting
whether the device accessing Collabora Online has an onscreen keyboard
If unset, Collabora Online will do its best to guess. At time of
writing, this is the same as checking if the device is a mobile phone
or a tablet (note: only tablets which have the browser registered as a
"mobile" browser will be detected, e.g. the Microsoft Surface tablets
would not be detected)
If "true", Collabora will assume the device has an onscreen keyboard.
This will change when we trigger the keyboard, for example in calc if we
know of an onscreen keyboard we will not automatically focus a cell for
editing when it is selected, as this would pop up the keyboard.
If "false", Collabora will assume the device does not have an onscreen
keyboard, effectively doing the inverse of the "true" option above.
This is a followup to #7580 (0bf054c9a3)
which had Hint_OnscreenKeyboard and Hint_NoOnscreenKeyboard as
postmessage IDs to do the same thing.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I5deeb87a410c135d4cabda7ed24dc37e791800cd
doesn't happen in ci, but is happening in tinderbox and for some
users.
Seeing as ScrollSection doesn't have the problem, follow the export
and namespace pattern used there.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I4c4916ba7a3ad19275bd8b0f5bc53111b3b30cd5
- SVG for lc_fromrow is not compatable and it was not loading properly in browser
- fixed svg syntex to properly load by browser
- removed unused css class from mobile wizard
- that fixes the icon remain light in mobile view as well
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Ifa1e2e5397e48d33ede8a6081808cd0051d9059a
matchMedia allows you to check matches for CSS media queries from
JavaScript. By checking if the primary pointer is 'course' we have a
pretty good shot at guessing that it's a touch device (mice, etc. are
'fine' instead). This expands our current touch detection so it detects
more screens, while making sure it doesn't detect devices which have a
touchscreen but also a mouse/touchpad/whatever. This non-detection is
important, because our touch support currently breaks things like the
rightclick menu on calc.
Touchscreen detection is useful for devices that are being used as touch
devices, because it enables some features like pinch-to-zoom and
hold-for-rightclick-menu which improve usability when you are using a
touchscreen. These are particularly important without a mouse.
Some devices are 2-in-1 laptops, which have a touchscreen and a
touchpad, but can be collapsed so only the touchscreen is active. These
devices will be detected as touch only when they are in their 'tablet'
form. *As we setup parts of the page differently, the page will need to
be refreshed if they change from tablet form to laptop form and
vice-versa*. Hopefully in the future we will make a followup so that
both input schemes can be enabled at the same time and extend this media
query detection to (any-pointer: course)
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ied4f61a1ffb06bd63359bc6d81c6a6c23436cc23
This helps with performance of typing into spreadsheets.
Regression from commit 46c1248c77
Prevent right mouse button up event to click on menu item.
Do not add new event listener on every header update what
happens often but rather apply right click blocker when
context menu is opened. Original commit was trying to prevent
menu items activation on right click.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: If468703a4728d12238c5748f182453cd2b8812c9
createDocumentFragment creates out of the DOM nodes
which we can use while building the new content of the formulabar.
This reduces reflow and similar operations on node insertion.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ie0791af517a018241222efa2031af673d97c9e6b
we know where they are by cell addresses, so defer getting
the screen positions until we need them and we don't need
to get core to trigger recalculating them. When we redraw
the comments after the new geometry arrives then we can place
them via the address.
When adding a new note we want to know the range of the
potentially merged cells we are inserting into.
https://github.com/CollaboraOnline/online/issues/7334https://gerrit.libreoffice.org/c/core/+/158560 needs to be
applied to solve the problem described there that becomes
apparent when this is in place.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I3228dc8fa8d47ba4e796e50427c125d7f78fe5fc
In some case[*] when we right click on row/col header and release mouse button,
first element of the context menu is invoked accidentally. To prevent this,
just prevent the right mouseup event on context menu item.
[*] 1920x1080 resolution with %75 browser zoom
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I28299e7a7cf83eaed27ef4ed6c3555fb2cc80682
If we end up dirtying only due to a series of TileRange reasons then we
only need to redraw the bounds of those tiles.
https://github.com/CollaboraOnline/online/issues/7166
checked: split calc sheets and rtl calc sheets
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: If468b735bdff85408155fb23ebf6db891a449d5e
Before this change, panning a calc spreadsheet would cause the onscreen
keyboard to pop up when in tablet mode. Dismissing the keyboard would
not stop it from being popped up the next time you panned around. This
made it very difficult to pan around spreadsheets in calc without either
using an external keyboard, the mobile app or another device altogether.
This commit introduces a known regression: when you are on a tablet and
have a physical external keyboard, you could previously select the cell
and start typing. Now you must tap into the cell in the same way you
would if you have an onscreen keyboard. This matches the behavior on
mobile devices. I consider this regression a reasonable tradeoff, so
notwithstanding I believe this should be merged.
Additionally, this commit adds 2 POST messages, "Hint_OnscreenKeyboard"
and "Hint_NoOnscreenKeyboard". These can be used to override our guess
if you know more about whether the device has an onscreen keyboard than
we do.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I8f3683ccb9e57f0c4a5bf8e415f9aabef917dd78
- showsubmenu event on hover
- hidedropdown event on leave
- submenu is inserted into the same overlay as parent dropdown
- don't destory overlay if submenu is closed, do that only for root
- works on tablet / touch device
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ibb4a747555e172dd4e040950cdfd309560f214a7
vertical separator was overlapping other widgets
can be found in: Calc -> Insert -> Pivot Table -> next
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I818fc4a8bb9b44b48fe43c911182c37e3cbc0d8c
- fixes regression from Accessibility commit 1a2500c
- it fixes formulabar control of AutoSum button #7548
- removes useless commit a7ece5d:
jsdialog: reduce warnings in console for formulabar
- id with ":" contains "id : menuId", so we can identify
menu which should be used, let's not use whole string as
HTML element id - we don't want ":" there
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I44adde54b852f1e6593fb660612d8116aadf3b39
The new messages are: Collapse_Notebookbar and Extend_Notebookbar
As a side effect they also hide the classic toolbar the same way
Signed-off-by: Hubert Figuière <hub@collabora.com>
Change-Id: Ic9d04876acb06f2885a6be1e171df7f87e513ed8
which is done by docLayer._onStatusMsg(), otherwise its possible to handle a
onViewInfoMsg before viewid is set
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Id68dba5f5cdc8efd0b5f6ed429ac4f105cef4866
part 2
fix from #7552 stopped working, this patch amends it
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I8c1227199112599fc2ade4e425452709e9cd05e5
problem:
when a user modifies a comment and its autosaved,
if user then cancels the modification they were still added
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I26c872f0957f0815882c4b1aedae83fe6736b7a2
select and unselect usually updates the layout but,
in case if it failed we manually do the layout update
problem:
when already selected comment try to modify,
it will not rearrange replies in the thread this caused
overlapping of the comments and bad user experience
fixes: #7527
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Id56a5c35795e1ff75e8c3a92032afce6b8585fcb
When opening a menu as in Calc > Home > Conditional menu and then
press tab: we can successfully cycle through the elements but for some
elements user cannot see the focus.
- The focus was being set but under the separator. So, better to
assure that the immediate separator neighbor is set to transparent.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Icb87b3173144356efad101f5e2b9b77e0e8dcd06
Chevron (Arrow)
- Use existing icon and re-use it instead of a text character
- sing text depending on font size and the width we were giving
- could be dangerous
- Fix alignment: before this commit the chevron was almost glued to
the edge
- Make the hover state less dark so the chevron is visible at all times
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I3b79c6b9df324727fd0c217f869d9bb8a4df2d72
Before this commit separators were being rendered in quite dark color
and thickens make them standout more than the actual interactive
controls surrounding them
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I96c3eaf476cd947f804d855e0fd242a5ab42ee9b
otherwise generated:
| int
| main ()
| {
| return dlopen ();
wasm-ld: warning: function signature mismatch: dlopen
>>> defined as () -> i32 in /tmp/emscripten_temp_6nz4f0ww/conftest_0.o
>>> defined as (i32, i32) -> i32 in /home/builder/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libc.a(dynlink.o)
em++: error: running limited binaryen optimizations because DWARF info requested (or indirectly required) [-Wlimited-postlink-optimizations] [-Werror]
and erroneously claims that dlopen is not present, and
configure fails.
Change-Id: Ie54db7c2099787a0b63b76b0b6e3e44750c9046e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
This patch is a temporary workaround for fixing CI failures.
In fact on CI with a11y enabled cypress fails to load spreadsheets.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Ic661358cd47600ec9c3a329bef361b8087483017
problem:
filename textbox will revert to original name after user confirms the name
and then again changes to new name after its processed
fixes: #6131
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ibb1645e5e6517b391d475add7b7d421a260e0ba8
problem:
After entering the comment modify mode and clicking somewhere else,
to lose comment focus, comment cannot be closed by clicking cancel.
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I05ce2b4f6dcba47d40095bb16fdb56ce5b9c20cf
which is done by addLayer, otherwise its possible to handle a
onViewInfoMsg before map is set
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: If6e6d15c90de129614bcc2b64705d0b51b5c4e83
We now have a new nice separator widget in online so we can render
separators that are coming from core. However in some cases, such as
mobile, we don't want to clutter the mobile wizard. On top of that we
already have separators.
Also: add comment to the jssidebar.css so it can be found when using
grep, blame etc
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I02a5831eff566367664ed022687ffeea6d7d3a81
This fixes regression from commit c77f1041a5
jsdialog: implement horizontal separator
Where horizontal separator widget was implemented
and now it appears in the sidebar, but as we have grid
layout there - it occupies only half of the sidebar
because we have 2 columns.
Previously there was no separator - hide it.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ie65626011f98ded52e57306fc41d94fc58829d8f
Avoid screen reader to wrongly report text when a shape or image is
selected:
- Got editable area to be made empty when user is not editing text
- Got default for any input to be prevented (except for some special
cases) when user is not editing text so editable area is kept empty
The selection action and the selected object name (e.g. "Rectangle",
"Presentation Title", etc.) are sent to the client.
That allows screen reader to report: "Presentation Title selected" or
"Rectangle unselected", according to the action type.
Selection text content is reported too when available.
Something alike is reported on cell navigation in a spreadsheet.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I75a8b66ef8cb7b24b28d749f0b24afe2587de45e
submenus should be opened next to the previous level
on the right side in LTR mode. without that change
we had submenus just under previously selected entry.
anchors "top" and "end" were implemented
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5b3b677c2347664f4ab97aab3a04da5fe72e3bff
It is possible to make submenus:
{text: _('Condition...'), items: [
.... sub-menu entries ....
]}
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0a6687c0a6bc19b4cd6616005571b75ad41eb444
it is used in dropdowns eg. conditional formatting in Calc
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I19554c74de2fa861686469acbf2c3025633d0687
Don't count dropdowns to the number of opened dialogs.
Use special type to indicate that "dialog" is a dropdown.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I38fa3c303d24601fc76606b994b7398f12dc7d38
w2menu in our version doesn't have submenus...
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I788a214c71ed880fdbc51dc026f00b82549c3361
but entries have to be max-content to not wrap,
only main container has no width set to be automatically
resized to the needs
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0dc2487b56700b1cc87f5f7ce1fcda8e91855269
problem:
rename dialog sometimes flickered in Firefox
it flickered when the button label was clicked,
it made the event bubble and triggered the click event multiple times.
trying to open dialog when already opened makes it flicker intentionally
fixes: #7479
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I290c905ac321650bd7979495c78de7d66f188ffd
override error messages
- send App_LoadingStatus msg with Intialized status once map is
initialized so that integrator can start to send postmessages
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I96e0c1471cbabe15b0e61711defe15f4e5298ab3
This removes the unused requestloksession command
and all references to it, including protocol documentation.
Signed-off-by: Areg Nakashian <ss4crifice@gmail.com>
Change-Id: I8c410460a5f500f724996fbcbf8f9650028daaf9
We now use our http::Response in HttpHelper::sendFileAndShutdown.
Change-Id: I77503fce7a66a11435bad896d3d5d6df611544be
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Since we don't want to propagate Poco types
as well as our pair containers, it's best
to have these are named functions rather
than as operator<<.
Change-Id: I9772b8f314262147b6c445464bf3ce8cb598b56d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This removes the literal string comparison of the
received http header with proper parsing and
comparison.
Change-Id: I383794aa1dc791632ec9d5ed2191880a57d457ee
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Since we already have an http response instance (in all but
one case, prior to this change), there is no need to pass
the mime-type explicitly to the sendFileAndShutdown
function, only to set it on the http response.
There are already too many arguments and the mime-type
is surely redundant.
Change-Id: Iab64074dc111573b87fb8fa9b907c26a4160910c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is of course for testing locally and as a demo.
This expects the wasm build browser/dist to be located
inside at browser/dist/wasm (which currently is done
manually).
Change-Id: I285177b4f08591cffe772acba531cf1a3434178b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The problem occurs when accessibility is disabled
Exactly when the editable area is not empty and the cursor inside the
editable area is at the end.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Ia69e0f56233497e91babf9e33080701e1f1adad2
Get_User_State postmessage is used to query user status.
If user is active or idle and how many seconds ago there
was registered last activity.
{
State: 'idle',
Elapsed: 2.3
}
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I354c329b48d61df380455ce3c4a4732e78b138ab
We send User_Idle when user become idle, but there was no
similar message when user become active again.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: If0fe48456dc5ba24357bde792254c11c14517170
we replace comboboxes on mobile with listboxes
but when we will want to use that widget again
we need to implement missing actions
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iabf9506bbb13c67a0caf9aee31d24c1d0732a657
so it correctly opens list of entries in goLevelDown
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I8c071908f4aa8ed9e47720dabfbb4060c495fbb6
this is called from only one place where the arguments are already
passed by const reference, i.e.
void AdminModel::addDocument(const std::string&, ... const Poco::URI& wopiSrc, ...)
so might as well forword as const reference and construct the copies in
this ctor.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I4fe0ed4a4dd8cb71aa970798760d8488be68f82b
Unfotunately, if our custom test driver run_unit.sh
fails, the report isn't generated at all.
So, instead, we have to go back to parsing the trs
file to detect success and failure.
We now make fast-fail an option instead.
Also fixes a typo in run_unit_standalone.sh.
Change-Id: I337c2a3edceda01df5f9c13c83eb176930b07e34
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
It seems that when TCP_NODELAY fails to be set,
the failure is permanent. As such, there is no
point in filling the logs with the same error.
This patch logs the error only once, per process,
and supresses further logs from Socket::setNoDelay().
Change-Id: I52c6b8cca35a8c281b4c4639d61a7e2521775d49
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Previously we reloaded sidebar or notebookbar on theme change because
we wanted to load icons to match new colors. This change makes
icons aware of theme change so they automatically switch the URL.
Reload of notebookbar or sidebar is not needed then.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iae0faa904e386765abebbdb8cc6cf3a156605706
in case of list view without levels we don't need
margin in first cell
detect that based on presence of aria-level property
use width: max-content to be sure we don't wrap entries
if not needed
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ica98e90dffd1e2b7330eb962cfc8141fa6fe01a1
Use pure CSS to make margins for different levels.
Inspired by: https://www.w3.org/WAI/ARIA/apg/patterns/treegrid/examples/treegrid-1/#ex_label
- reuse arrow from tree view and expander widget
- center verticaly entries in the tree grid / list view
- add pointer cursor for expander arrow
- do not allow to sort tree grid - it makes no sense
Tree grid is a kind of table with headers but rows can be expanded
and have subentries with different "level" in the tree
It can be tested in Writer -> Review -> Manage Changes
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4d0719a35cf852127378525153eb5b1e5d9961a7
To avoid 2 scrollbars in this dialog better to set a max-height to
this element so it never surpasses the main dialog height
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I939fd5fa3cafb3fcc0721aa2864b262535f622a7
This fixes regression introduce in: Fix Spell checker js Dialog
- fd630d427f
By reading the code, it seems there was a fix for the spelling
suggestion (that comes as an image from core). It fixed the width,
before that the image was being resized to fit the parent's width.
- This fix still works but it ended up affecting any other
.ui-scrollwindow (that is not .formulabar)
- which means that (for **any** text content) the content will not
wrap at all even if it causes overflows and it will occupy
only as much space as it needs and not the full parent's
width.
- Affected dialogs: Sort dialog's ui-scrollwindow was occupying
only enough space to display its contents, leaving a big white
space on the side
The present commit applies the max-content (that should never be
applied to text) solely when we have drawing-area child
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iaf461663508a70a6a599cbe3e9411026b54531f0
This fixes side effect from commit a1b2091ae6
JSDialog: Dialogs shouldn't be taller than viewport
As mentioned in the above commit, we seemed to have children that are
always bigger than the parent even if there is no elements to be
displayed and to fix that we enforce in multiple places the overflow
hidden: afbf052bb5
- Ideally we wouldn't do this and just let the web browser
figure out if a scroll bar is needed or not. However this
would be a quite risky thing to do without enough testing...so
Best to ensure that other dialogs that have hidden items in the
DOM don't get scrollbars. Examples:
- Writer -> Format -> Character
- Calc -> Data -> Validity
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia2625bd7e45214aa43ae96e95a149e0f78c9cd7c
rearrange so coverity can see the size check
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ifad60b1a2aba2cf9c6cfbf4ea8e450b9846de576
It fixes richdocumentscode case when trying to request media:
[ websrv_poll ] ERR #-1: Failed to open file [.../9a2gf9.ogg] for uploading| net/HttpRequest.hpp:1603
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia326f46a4a1aae28dbf03519ca88c03f499c281c
Poco::JSON::Object::Ptr anonObject(object) is effectively a
const_cast and the comment in the header warns that object
may be modified, so just pass it by non-const and drop the cast
and merge the resulting duplicate stringify call
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I9701ae95ff991b0dece854f295ba76ac9b3c2fa5
It seems large groups of people don't have a use for overwrite mode
- Would like to avoid enable it by default
This is just the first step on improving the user experience here.
------
The whole plan would be to:
- 1st Follow up PR
- Where we disable the overwrite mode when enableExperimental is true
this we will be able to see if community likes that change or not before making it everywhere
- Other possible improvements
- Triger a snackbar for the first time the user press the Insert key
- If the feature is disabled we would show snackbar with timeout
"Overwrite is disabled. Please contact admin."[Dismiss]
- If the feature is enabled we would show snackbar with timeout
"Overwrite mode is now enabled" [Disable] (Disable here means the same action as pressing again the **Insert** does)
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I060b3d2d9d1e7e29a18f5ea1d619c9349eae67c3
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
table-delete-rows-button is inside table-delete-rows so right not
it doesn't make a difference if table-delete-rows is clicked, but
in follow up we want to check if table-delete-rows-button is enabled
not table-delete-rows
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I7f21dd6a423192ba80791bc94bf63ff39d12f0c6
Not sure if all of them can be used now, but these 5 i tested:
insertion, deletion, cut, paste, format
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: I4a6c974817d58455f01f106232c9baa66fe9d58c
If postmessage to insert custom button will arrive
early before we initialized notebookbar it could
fail in insertion into compact mode toolbar due to
not existing toolbar.
This prevents us from that error. It will be not added
at the time of postmessage execution
but we remember all the custom buttons in special
array, so when UI will be initialized it will be added there.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I07d86db49a50be70b0c091a66cf5e4be049211ce
Without that integrator doesn't know what happened.
We were silently ignoring messages.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I897a95b343a1b436745816ccbef7656f30981112
with the original 25 expected results from 25 requests
from cid#318925 Structurally dead code
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I236876fadd5b5c82ecdbcc52a13fc58e8513aa12
and
cid#318819 Uncaught exception
take a reference in the COOLWSD/DocumentBroker ctor, so indicating it
exists before the calls in the COOLWSD/DocumentBroker dtor, and so the
Admin ctor doesn't throw during the COOLWSD/DocumentBroker dtor.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I8190cc3594a5f81fedd355aeadcca45e532bda90
With this fix, user can open a new commen popup without closing a previous new comment popup.
Without this, a new comment section lingers at the background and new comment command fails until user refreshes page.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: If7f151eb11d3f5d26dae2ca6331eb5dc0dfd9881
scraping the logs with:
if line.find('Backtrace ') != -1:
pid = re.findall(r'Backtrace ([0-9]+?) -', line)
if pid:
for file in os.listdir("/opt/cool/quarantine"):
if file.find(pid[0]) != -1:
...
shows an unexpected lack of hits
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I63b5e62a5d46627146763cb0f847b976017f6c4b
- Condition modified for getPrecision.
- it was not handling the cases for dot value less then 0.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I740f86e9477656d371ba3b8793bff99671444d7c
- jsdialog requires to create in the handler single root node
with id of the widget
- remove old style update by _refreshSidebar
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I8ce6e832b2d27d25f54e9bf636572b8c97d3a7c1
queryselectorall('something').queryselectorall('something else') fails.
^ This JS error is fixed.
Also we don't have specific images for German help page. So we removed the "de" from that language list.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I69b56e8f4bd2b92835c4aca9c2284750f3df9455
for font selector and font size...
this makes us sure we initialize everything in Impress and Draw
too in case of reconnect
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I67ee15f470fa43965f6fbd91ae45cd330ea449aa
problem:
earlier restriction/lock status was sent to kit via browser,
now client session send this status directily to the kit.
this design will require less communication between server and browser
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I6b830f30fb326a5e6637e345250893cbba101de6
make -C cypress_test check-desktop
asserts seen in cypress_test/cypress/wsd_logs/coolwsd_output.log of:
coolwsd: wsd/DocumentBroker.cpp:3134: void DocumentBroker::sendTileCombine(const TileCombined&): Assertion `!newTileCombined.hasDuplicates()' failed.
If we check for, and don't reuse, an old request with a different
NormalizedViewId then we could end up with multiple requests with
different NormalizedViewIds that end up in the same final tilecombine.
similarly there was no check for different modes ending up in the
same tilecombine.
just split out the logic we have to see if two tiles have the same
properties that appear as a shared set of properties for tilecombine
and use that in the two relevant places.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ieb2ee0e85f124dd57c6b050e5b669dd808cf6bbf
TypeError was noticed where container was undefined.
This was case where snackbar was closed.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Id465723e01bc2cec2e20056103a918e53abf6d09
problem:
this caused problem in autosaved comments,
when comment list is empty autosaved comments may be closed when focus is lost
partial fix: #7421
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I1fc2d087828ce44495001f97b5323dffb8adb2ef
- It logs activities like when admin logged in, authenticated
metrics endpoint accessed, external monitor getting connected
and admin actions like kill the document etc
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I059f6b6ee0d8269aec7e3f521622773e348304a3
for coverity always assert even if a previous test was to fail
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ic48654d828a5311e043f412d9c30139e25b40262
Also add a check for failed attempts of new comments.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I50a9981cf51475d6008e936e6e28573156a8383a
Set up accessible text through aria-description for describing how to
enable accessibility support for text content when it is disabled.
The description is reported by the screen reader on document load and
on explicit request to read current text content.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I439b7703c15d3b38c39181d27c11da438834c414
if we zoom in calc quickly that can result in still unfulfilled requests
for the first set of tiles from the earlier zoom in requestedTiles when
the new requests are compared with the existing one for duplicates, but
they are of different tilewidth/tileheight and shouldn't match as a
duplicate.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ifc3f905c5304feb6c05696835dcb4eaed7f1e546
AdminModel::cleanupResourceConsumingDocs uses SIGABRT as first
attept to kill misbehaving documents, we should give
DocumentBroker a chance to quarantine documents killed off by
SIGABRT as we do SIGSEGV/SIGBUS
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ic3a703572393050379b5a1444a5380bbeafcf2d3
we emit lots of warnings which are not important
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I59027c4d848a98ba3d9e8f4a3feafd3fcb62dec2
to make main JSDialogBuilder shorter and easier to read.
And move handler to mobile builder as control exists only
on mobile.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I9a14c7050711658638d22f0fd7b47e038b5952a1
We only run one task in each thread when run() is called, then complete
the remainder of tasks in the main thread while the other threads wait.
https: //github.com/CollaboraOnline/online/issues/7374
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Id4fc0a620d98b0bb55310b495eeff7411a4544b5
if we switch calc tabs quickly that can result in still unfulfilled
requests for the first tab in requestedTiles when the new requests are
compared with the existing one for duplicates.
It doesn't make sense to replace a request for a new tile with an old
request from a different part. But tilecombines are intended to share a
'part', so a single tilecombine shouldn't be synthesized from multiple
requests for different parts.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Id8d40f0a7e7f9d32fed67a415756284d7f6a53d4
in which case don't send it, which then implies we might have
an empty shareFDs which we can treat the same as a nonexisting
shareFDs
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I80a78a01c69dbee5ee28a64442a5069a6c2b4dbe
Don't allow dialogs to grow taller than the web browser's viewport
instead,
- Set (for dialog's content) a max of 90% of the View height and subtract the dialog's
header. This way the header with the close button stays always visible
- Set overflow accordingly so it can be scrollable
- Needs to have !important because it seems we need by default
"overflow: hidden;" set to every ".jsdialog-container
.lokdialog.ui-dialog-content.ui-widget-content"
- introduced in afbf052bb5
possibly due to hidden elements that are part of DOM
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I61a2a41d8b1198fe00b939427cde43d247dc08bb
This is still occurring also in Firefox 118.
Anyway it seems to never occur on Windows.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I0e5c643912f2276c60bdba1b2ad1ed801785193f
Some of the options seems to not working on mobile app
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I934e446dfeeab46f26e95898522cb0b7c1cc64a2
detect if video is able to play via checking if any frames are decoded,
in other cases(i.e: file not found or corrupted file) check for the errors in source and video
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I22bfc836a98ec0eb2caa58b89332b2531d69d18f
This commit fixes videos rendering in the wrong place on Safari (and all
iOS browsers). Note that it will still need the server fixes contained
in https://github.com/CollaboraOnline/online/pull/7367 for Safari to
play video
To reproduce, load a document with an mp4 video in Safari (this may also
work with other formats, but we know of unrelated bugs with non-mp4
videos) and click on the place where the video should be.
Before this commit, you will see a white rectangle where the video
should appear. After this commit, you will see the video. If you have
this commit but not #7367 you will see a play button with a "broken
video" strikethrough. In non-Safari/iOS browsers you will see the video
both before and after this commit.
This commit does not include detection for the upcoming Layer-Based SVG
engine <https://wpewebkit.org/blog/05-new-svg-engine.html>. This means
that this commit will *break* video if this is enabled in Safari debug
mode. If this commit is merged as-is we need to make a followup to fix
this as soon as possible or we will end up with a similar-but-opposite
bug when that flag is toggled on by default.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I205e692e7027ad917bd6f29aa96b0ac70a4c9e04
The range header allows a client to specify that they would like only
part of a file, e.g. only the first 1000 bytes of a video. When playing
video on Apple devices (Macs, iPads, iPhones etc.) this is required to
avoid Safari rejecting the video as broken. This is the first part of a
fix to embedded videos on Safari.
This commit does not implement specifying multiple ranges at once (e.g.
bytes=0-9,-100 to get the first 10 and last 100 bytes).
This feature is necessary to play video on Apple devices, but it is not
sufficient. In particular, I believe some further client-side fixes will
be needed to make the video play properly.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Id89a06d374b7d0efbf2b3184d8618df61684dcb6
- don't invalidate the tiles
- don't reload the document if serverId changes
- writer: fix cursor jumps to top the document
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ie42850e77f9011cd1c820115919f10283407f216
We want to re-force the choice, i.e. people who mistakenly set
their UI to compact mode, now will get tabbed mode and can
decide, if they like it better or not.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ic5810321abf2cbc3996478816fe153d848c66c71
Now accessibility support can be enabled in Impress.
Created cypress tests for editable area in Impress
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Ia2fd4e55bce3785320ec0cc9f31a6d7550ca3a82
Use new id for snackbar with progress and style it
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I24a1647f0f629b7b079aa65601f4309c339a06e8
Before this, the padding-right was being set to 0 (probably to save up
space) but this is not the way to do it. It looks weird when the focus
is set to that button.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib60b32cd9d0f5f42444cadef121be32c15941483
if complex selection was copied in one window
then we try to paste in other document, then
the same dialog appeared. this commit shows
only progressbar step for "paste" operation
as we don't need to do anything else.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Id9c33261dbdfb282d142cdfdf2217b30111263b1
Reusing progressbar dialog allows us to show it's the
same process for the user. So even if it is instant he
will see 100% progressbar and that button become enabled.
Create new file for functions which manipulate existing
modal dialogs.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I765483b940f47bdfbcf8a488ea7d0ab9569ccda9
- use the same id so we can apply common styling
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0fb567fd5b77e3ca57b5ba5cd8d6e1fa29e46fc1
This will provide easy to use flow for the user:
ctrl+c has to be clicked 3 times to copy, download and confirm
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I745963744cdff552c37f7a5ffee5c0f737fb67ba
user changed selection - it means we no longer want to download
content but we do something else
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5df0a63baa1bf1ae85567430d531dd7800ad6cd0
- add relation label - button
- make action button focusable and possible to click using
keyboard
- allows to use keyboard shortcuts on snackbar when event is
handled
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iaea53f7d74d547a42e6c7096fde3b9136a3bb968
- this will allow to share common strings
- use shorter messages
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ie21dfaf17b76c79e6ced83b439e67feae4dac009
when we create new snackbar it has the same id and sometimes
it happens that timeout from previous instance closes the
new one, because timeout wasn't cleared
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I52dbb2c1a297012fc686fc044c5b3b7263c83543
Instead of leaflet popup we use now snackbar.
- control is not removed and added again for next copy-paste
but we keep single instance for all the time
- added download error message
- simplified close snackbar code
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I804a82c4f589b029a42fc2800958ff2b46b7df50
Can be modified again for more specific purposes. First version is simple.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I8ad929ffa841c3c2c282f72058ab07882d6a4465
Also change the description to a shorter version.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I81e4b6b58de9b81071b48634ccb282c30590dacf
without a need for an additional timer to poll when that is possible.
this._map._docLayer is set in _onStatusMsg only when _isReady() is
true so if this._map._docLayer is non-null _isReady() is true
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ia019d8d8516f8c9156f3e96be262138a16343983
Reason:
Sometimes cell address is at the end of a merged cells block.
That kind of cell address is invalid. Example:
Merged cells: A1-A5.
When example merged block is selected, cell address should be A1.
If it is A5, cell cursor is not drawn.
If cell cursor is not drawn "EMPTY" message is sent from core side.
And we cannot enable drawing in this case.
So we enable drawing even if the cell cursor message is "EMPTY".
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I456bc757725c9bfaede20068cf165310712488e7
Currently translated at 100.0% (467 of 467 strings)
Translation: Collabora Online/Help
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/vi/
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iaa8bd53765570700596eacf7c6d7c530456329ad
Currently translated at 100.0% (526 of 526 strings)
Translation: Collabora Online/UI
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/vi/
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I706542c7e0f5b10d552ade642f8971cb88e25c0c
Currently translated at 100.0% (526 of 526 strings)
Translation: Collabora Online/UI
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/sl/
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I22264a42e81b4824c2e6368fb9d7d412217b816a
Currently translated at 100.0% (526 of 526 strings)
Translation: Collabora Online/UI
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/id/
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iae1d21d0f2d85e6ad39958bbe1d1b445c8be3494
Currently translated at 100.0% (526 of 526 strings)
Translation: Collabora Online/UI
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/he/
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I52b71fb60a9dfaa9fc05addcbfe91c58cf6bf22e
Currently translated at 100.0% (526 of 526 strings)
Translation: Collabora Online/UI
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/es/
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I63719b2b2a3118d8adb3f72e3ee1823d1ed20254
Currently translated at 100.0% (526 of 526 strings)
Translation: Collabora Online/UI
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/es/
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I9409646d59a1139cfe63ee2944fb24b3a94e3236
Currently translated at 100.0% (526 of 526 strings)
Translation: Collabora Online/UI
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/en_ZA/
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I5f4990980ecee17a5beb9b2edb39a33dffdecd14
Currently translated at 100.0% (526 of 526 strings)
Translation: Collabora Online/UI
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/en_NZ/
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ice7c509eab6e892d9c979b7e5c30f5a5bc818313
Currently translated at 100.0% (526 of 526 strings)
Translation: Collabora Online/UI
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/en_GB/
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic89da9ce4e47459f6628d0e203fd6edb33497029
Currently translated at 100.0% (526 of 526 strings)
Translation: Collabora Online/UI
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/en_AU/
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id3576206dece929eaa6c2f66743b19baf3c34baa
Currently translated at 100.0% (526 of 526 strings)
Translation: Collabora Online/UI
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/cs/
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I183bd565756f8f147e86c0cab4f17e8ea7a687a2
Currently translated at 98.0% (516 of 526 strings)
Translation: Collabora Online/UI
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/ca/
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib887d3401404c5f4e7b9530888e5cf89bf4ff9cf
Currently translated at 100.0% (526 of 526 strings)
Co-authored-by: Mike Kaganski <mikekaganski@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/ru/
Translation: Collabora Online/UI
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia58f78785481bef64f6e9e417ed743950b27837c
Currently translated at 99.2% (522 of 526 strings)
Co-authored-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Co-authored-by: Pedro Silva <pedro.silva@collabora.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt/
Translation: Collabora Online/UI
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I80968433b35ec5d9e32df4670c465290448514d0
On iOS, each app has its own sandbox which has a temporary directory.
The FileUtil::getSysTempDirectoryPath() method successfully gets this
directory and we create a tiledump directory under it. Sadly, we then
try to write to /tmp regardless of where the temporary directory is.
This commit makes us also write our file in the directory returned by
FileUtil::getSysTempDirectoryPath()
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ic8425cb94d1d85ac9c77212eb84d0ca7c46cd34e
- this id will help to identify which adminClusterOverview socket
has sent verifyauth message from controller
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ic09b33c9eb2c0072f84b7147acc673031dbac0d8
`command` has `Collapse Notebook Bar` that not only is incorrect (we do
not call tabbed view that name anymore) plus it's never used. So, no
need to give extra work to translators when this is not used in the
generated code.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic021a7f48ef653bebd65562f6d6b546947e406d4
"Enter editing" what? Better: "Enter edit mode"
Even better, let's start with the action verb and make it shorter:
"Edit document"
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I41ea52532302fa903e9d31398baffdce904cf832
Currently translated at 95.3% (495 of 519 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.5% (418 of 467 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.6% (491 of 519 strings)
Co-authored-by: lpwxyz <lpw@tutamail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt_BR/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I5643936930e886eedcbf59ae1f3f49a75119a3a0
* Replace CTRL + SPACE with CTRL + ALT + S for search.
* CTRL + SPACE is used for resetting the character properties.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I99ed1e99cf7e1ea23344961d36cce42d72cbba5f
it's a good catch, but inotify man page says it can't happen
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I350f8fad2aa8308563ccb4f9f3ec9b7850a72fa7
* Sends "UI_OpenDocument" message to integrator.
* The post message needs to be handled by the integrator.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: If57bdd1f7db496766fbb7082ffeff855aba4e97c
* This sends the UI_CreateFile postmessage to integrator along with the document type.
* Integrator should handle the message.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I75d78a2d37876af7233025233ab7f1b3515442a3
We no longer create that w2ui bar and we also have removed any element
with that id or parent from cool.html.m4 with that name. So, this can
be removed.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I26c9e66de44fe8a8f8ad785031c640d32960a350
it belonged to the removed unused document signing code
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Idf57b30a508381e02c8d62196de38c828cd77f2f
The scroll indicator set with an absolute position ends up being
positioned in the 0 y coordinate. Since the wrapper has a top padding
of 3 pixel it means the scroll indicator is not 3 pixel off.
Also, and since these measurements are set in the CSS (the height of
the wrapper and the padding of the other wrapper), better to just move
everything to the CSS and avoid unnecessary inline styles.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Icc1e51b2590ee27b318f9e4c3d550183b08cb49d
so we capture crashes that happen while a document loaded before
any modifications could take place.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Id8b9ae3e6921aa0be770dbe1ad8fcf9b53a85e8d
skip deleting those jails for a few minutes to allow
the DocumentBroker to quarantine the document
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I781eeb77d491fe82a0bfe42eb09439c88f2454b7
Error while copying from foo.ods to /opt/cool/quarantine/1696408774_5231_blah_foo.ods: Failed to open src foo.ods| common/FileUtil.cpp:162
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I49143f4d7df0c4c1494f28f8f6fe03d8cb045ab0
use a more standard way to zero the _sb stat struct
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I98973affe6b96a5779cfc3eef3c349019c34d0a0
and use online standard member prefix
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ia7681870128185ecba27da0e344912e393e9114b
Instead of fighting the SolarMutex to get the messages
processed by the main loop. Simple and no additional
threading, mutexes etc.
messages from the external uno client are just
written to URPtoLoFD and the core reads from that
messages to the external uno client are written
to URPfromLoFD by core, that fd is in poll, and
activity there triggers a read by the DocBroker
to send it to the external uno client.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ib1f0a0d5fb5ab22eee476d5d740b290c51de59dc
- Allow COOLWSD client sessions to forward messages with the prefix
'urp' to the child, and return messages with 'urp:' to the client,
communicating with binary
- Make COOLWSD child sessions use the FunctionBasedURPConnection from
https://gerrit.libreoffice.org/c/core/+/155100
(core change ID I2bda3d0b988bef7883f9b6829eeb5b7ae8075f27) to start a
new URP session
- Make COOLWSD child sessions submit messages to this URP session,
stripping and adding the 'urp' and 'urp:' prefixes so the Java client
from https://gerrit.libreoffice.org/c/core/+/154680
(core change ID I91ee52922a24688a6b94512cb7e7bc760bf25ec9) can
use the connection (and to avoid interference with any other websocket
messages)
- Add a COOLWSD option for enabling/disabling URP given the security
implications around allowing anyone to write URP (e.g. URP lets you
run shell commands so a mallicious actor can take over the child
session)
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Idadfe288a78cfd72b01253dfdade150d506e3f05
After 5520965b15, tablets no longer had
the context menu registered as they always start in read only mode. This
commit moves the check for tablets so it is when the long-press is being
triggered.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I60da2482b711c90676ae49c8b3134d02a6cd1b02
Previously, tablets were treated as desktop devices for the purposes of
the calc sheet context menu. Unfortunately, this requires a right-click
to open the menu: a long press won't do.
To reproduce before this commit:
- Open calc on a tablet
- Open a spreadsheet
- Long press on one of the tabs at the bottom
- Notice how there's no menu, so no way to rename/move sheets/delete
sheets etc.
On a proper mobile device (i.e. a phone) a mobile wizard opens allowing
you to perform these operations.
This commit makes calc trigger the context menu if you're on a tablet
and long press on one of the sheet buttons. Notice how it wouldn't be
right to simply apply the mobile behavior to tablets as everywhere else
they use regular dialogs and context menus rather than mobile wizards.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ibf25b0d76d8487e582ed6a6cf1f82467869453f6
Failed with:
fuzzer/HttpEcho.cpp:111:17: error: 'removeSockets' is a private member of 'SocketPoll'
And:
kit/Delta.hpp:208:(.text._ZN14DeltaGenerator14DeltaBitmapRow7initRowEPKjj[_ZN14DeltaGenerator14DeltaBitmapRow7initRowEPKjj]+0x127): undefined reference to `simd_initPixRowSimd'
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I6d980698b43ca3545d9eae5f40eabaf4e442ca17
This replaces Poco's LocalDateTime, which
took a lock, called tzset each time, and
did unnecessary Julian-to-Gregorian conversion.
The result is a standards-compliant implementation
that is about an order of magnitude faster (0.3 us
vs 3 us on average).
Change-Id: Iced73056a9f9e6497106224c351110113e21d8d6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This verifies that in debug-builds the log
thread-local buffers are destroyed, and
therefore the threads are gracefully stopped.
This is necessary to make sure no log entries
are lost by the time we exit the process.
Change-Id: I0db20835109e92d8758a5c4eec6845cd240da025
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This gives each logging thread its own buffer.
We then guarantee that all threads exit clearly
and flush their buffers.
For now, we don't flush buffers when fatally signaled,
primarily because of technical complexities.
Specifically, we don't know if we have a Poco logger
or our Buffered Logger, and there are a host of
threading and signal-safety concerns. To be revisited.
Change-Id: I39674a25feeee3aabd87c8b707ea1adf3c039817
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This replaces Poco's ColorConsoleChannel with our
own, which is simpler and more efficient. It also
doesn't break log entries arbitrarily (only when
the entry is exceedingly long).
Change-Id: I46ba58d35bc913ca83fe97aaaa958c03b81ae44e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is a buffered version of our ConsoleChannel.
Change-Id: Ie1728e136376fdf82ec28010b67d8344fd812768
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Now that we depend on EnableExperimental in Log.cpp,
we must define it in the standalone binaries that
otherwise don't define it.
Change-Id: Ic56032eaf6df7d0d5d707a60eeddf2d75c9041ac
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This replaces Poco's implementation of ConsoleChannel
which has a horrible issue with writing the new line
in a separate syscall. This often results in multiple
log entries on the same line and other horrors.
This implementation does no buffering.
Change-Id: I8d18de1313d8f160270ec04552ba7e7b69d2363e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
There are very rare cases (with unit-tests)
where due to early race-conditions a signal
is raised. This helps us catch those early
cases, before the Poco config and init are
executed.
Such a case exists with tzset() and setenv().
While getenv() is thread-safe, setenv() is
not. When tzset() calls getenv(), it can
race with setenv() from a different thread.
Since we only call setenv() during
initialization, this risk is only at startup.
Change-Id: I5e3e593a5d93dd9335d8dfde932f764a45c975c1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
perf reported 1% of time in collaborative multi user test
on 2023-09-14 was spent in TileCombined::parse.
generic-ize and reuse the TileDesc::parse approach for
TileCombined::parse to avoid need for std::unordered_map
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Iadfc2001e298d8f4d46200c8488f0eb4cd8734c2
mobile screen is very small and there was not
enought space to scroll to the place where we "extend"
scrollable area, this caused that in spreadsheets we
were not able to scroll outside last used cells
- this patch make us able to scroll few lengths of screen
outside data for non-desktop devices to fix that issue
- add threshold for automatic pan after bounds has been changed
to avoid jumping of the screen back
- use twips everywhere
regression commit 48ec2f5925
Limit scrollbar range to used area in the spreadsheet
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Idf5890764462947d895df7f65b30a1d82dd64067
* Add CTRL + HOME and CTRL + END for selecting the first or last slide when slide sorter is focused.
German shortcut updates:
* F12 for save-as.
* SHIFT + F9 for showing / hiding the grid.
* SHIFT + F3 for changing the character cases.
* SHIFT + F5 for starting the slide show with the current slide.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: If9eb59377af29bebfe89fa42ea9d5afdd1bf2335
This fixes regression from:
commit 07c3538589
mobile-wizard: create separate window container
The snackbar with action button like "leave feedback | ok"
or "we can reconnect | reload" had buttons below text
what looked bad and it was not possible to click
We introduced separate windows inside main
mobile-wizard-content container which have class
.mobile-wizard-content - let's use the same rules
as before for popups
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I506aaf34741fb1ff879c0c5c44a5958d6be9912c
This fixes regression introduced in:
commit b6c26bee91
Mobile sidebar header layout #6861
- remove additional top border
- make line height regular so text will fit into snackbar
without scrollbar
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I72a1e7121d58a7583bd4efce9728c25231c7d8de
This fixes error:
Map.Keyboard.js:364 Uncaught TypeError: Cannot read properties of undefined (reading '_docType')
at NewClass._globalKeyEvent (Map.Keyboard.js:364:3
When we open document which requires some interaction from user before
load and we press any key - that error appears. It can be seen with
macro warning or broken file warning.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib7b3681d047dd61ffde0364ad40a4d542a5fd548
Change-Id: I4dd197666db5f85e6ba750857eba4ef6eb51d646
German shortcut changes for Calc:
* F12 for save as.
* SHIFT + F3 for function dialog.
* SHIFT + F2 for new comment.
* F9 for re-calculate.
* F5 for focusing on address input.
* ALT + 0 for format cells dialog.
* CTRL + SHIFT + L for auto filter.
* CTRL + F1 for expanding / collapsing notebookbar.
Change-Id: If9bcf4f696f4575061443423645726860d14eafe
- it applies for 2 cases:
1. when document is loaded for the first time document already has
tiles of respective theme
2. when Kit loads the document it sends canonicalidchange unconditionally
(5520965b15/kit/Kit.cpp (L1708))
we don't need to request new tiles for that also
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I42cdc5a03e70c3d3d653f3124d3d5ed9382e22c0
in error branches dlclose unusable dso, leave it open on success
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I3a2eafceb573cc59ada922d98ae6a9b421d6accc
The forum link in the README is missing https://. This commit fixes that
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ica0a29ecba69e68b201c07b76ef6fd57822fc3ac
We are adjusting the sidebar when we send sidebar commands. So i couldn't add the .uno:Navigator command to core side.
It tries to open the navigator but our side should also be ready.
In the future, we can make adjustments to allow to use core side shortcuts directly.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I273b7c2cacce6ed0c8f20f672ba9ba7daa29cfd5
With the recent (and very welcoming) changes to steer away for generic
elements such as div and instead use more appropriate/semantic
elements such as button we ended up applying new rules to main-nav
buttons. These rules were only intended to be apply to classic
buttons (rectangle + text inside). Result:
- userlistheader even if invisible was getting a background
on mouseover
- all <button> elements were getting extra padding and margin
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic774fd342df5483cd7210b85c4847688914b28f2
userListHeader, element present in compact and tabbed view to display
users present in the document (avatars), seems to suffer from a odd
alignment and duplicated usage of white space.
Best to remove any hard coded pixel that seem to come from legacy css
and rely on flex if necessary. Also the surrounding elements (doc name
and sidebar icon) already have save space around so they will never touch
on top of that this was having different result than "expected" when
using a different RTL system (since we were not using logical css properties)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iab0869080231ac734c087afeee97d9cd0243030d
Make tab's size dynamic
- Font-size
Instead of using always a font size that looks nice in a wide screen
but that will look cramped and without space in a narrow window:
- change it's size depending on viewport within a safe range
- new css vars added and respective comment in the code
- Also we use clamp css function but we also add a fallback for old
browser using the generic calc css function
- Padding: allow to get lower levels when the viewport is reduced
Hide document-header when the window is narrower than 800px
- this frees up space and also benefits tablet us case where user uses
2 apps side by side
Document-title bar
- Hide document name if the window is too small. This makes it
possible to fit all buttons without horizontally scrolling the main-nav
- Note user can always access the rename feature by going to File > Rename button
- Remove any hard coded pixel positioning and instead rely solely on
flex layout
Main-nav
- should always occupy (width wise) 100% of the viewport. We want
always the far left icons be always at the end of the viewport
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I58843f40e21d26f955422d6159b5777144b684fd
Before this, when using a narrow window, the top bar wouldn't be
scrollable until we would press the avatar list. Also when switching the
modes it would becomes unscrollable yet again.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I01b2afcb125a2addf9847e2581f9498105b54b00
Before:
"When I use the "clone formatting" tool, I have to point the handle of
the brush icon to the cell I want to clone rather than the
brush. Logically I would expect to point the brush part to the cell I
want to clone, but because the handle seems to be the point at which
cloning occurs, I end up cloning the cell above and not the actual
cell I want to clone."
Fix vertical coordinate so the bottom of the hotspot is in the brush
and change the outdate comment WRT the png in question.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I69e0935542c068016366a26d8100866c23ca17dc
We assumed in the code that LO will return in a
LOK_CALLBACK_EXPORT_FILE url starting with "file:///tmp/"
But that is not true for all the cases. Let's use
more generic approach to extract file name.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib415f129b10c7e54172536f43a820e4bd3e9bfd2
This fixes regression in Get_Export_Formats where we
didin't report possible formats when in coolwsd.xml
option "group_download_as" was set to false.
Regression comes from:
commit 939a7a0301
Simplify notebookbarwriter and tab page containers.
Where JSON for File tab was incorrectly built and
some of the entries were skipped.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I10c06f28dd2b3884bdab8389ea121c94d0ba92d8
and avoid local static in simd_initPixRowSimd
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Idb89d5069da5ff10b346b5e4d767374d4529a96f
This is to differentiate between a complete
trimming when idle compared to trimming
when inactive.
Change-Id: I61b309968e0a5199fe4f0fb445437a953c0e468a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
In NDEBUG builds, where there is no assert macro,
we log at debug level to still find issues without
adding noise to the logs.
However, in ENABLE_DEBUG builds not only do we assert
but we also log at error level.
Change-Id: I773dbf7bb2b459e505e73d91505b13d8ed2ed6d8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This returns from the connect helper sooner,
shaving some time from each connection.
Change-Id: I29e2637c16b9e2574cbfb99779551d7ae1c8c2f0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This encapsulates and manages the lifetime of
file-serving cache in an instance of
FileServerRequestHandler. Previously, it was
all done through static functions and explicit calls.
Change-Id: I1b0bf0e3c25e6ae82c398bf5d0de255a6fec42a1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Performance testing suggests that:
+ dense text this is 2x faster.
+ 'hello world' text this is 1.7x faster.
Change-Id: I4ff940663c44d0b22c9187deb4ee397a9d9953b0
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Simply calculate our loop variables from the iteration we're on.
Change-Id: I0bb73302fb09963b2a1f5b3d93ef302316ef1d4f
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Remove the special case for the first pixel, and instead have a
previous pixel run initialized to zero.
AVX2 has no effective shift for the while si256 so use permutation
to shift the last pixel of the previous run into the right place,
mask it and combine.
Saves a second un-aligned load of the same data, and branch.
Change-Id: I77c9cdead13d37aaf4d9f31d98cbd5c4a9c5ce24
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
just enough to get the same results as before
https://github.com/CollaboraOnline/online/issues/7165
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I109c9b8f1e7935782c72e0179aa0ed48712eadb6
Split it out as a C file, to avoid accidental C++ header inclusion,
and C is a cross-platform assembler anyway so a good match.
Change-Id: I6c042781713aecaf143b9663af8377659a7deaf1
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Autofilter dropdown has submenus which are created at the same
time as main menu. These submenus are hidden but send jsdialog
message with "popup" type. We ignored that message on desktop
so do the same for mobile to not show them instead of main dropdown.
Added also warning about unhandled messages.
Removed old style "autofilter" type handling which is not used anymore.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I18d0c9078b88d6d24290e44179594a8eebd1c2e4
Will not create `<u>` element for mobile wizard
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Iaca88ac4be2c95dc4781180019ba8fede9cdc81a
The test now runs as many times as requested
and doesn't stop on first failure. Instead,
it reports the number of passing vs failing
runs.
Also simplifies the detection of the test
result by using the exit code instead
of grepping the output file.
Change-Id: Ie458b2963411632d566cd87d2dfb9137044d2b4b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now exit immediately with error code when
we are given --unitlib argument but fail to
load the given library.
Change-Id: I4eb5f3a37b9838ecf83bdceef4d09f888afcca83
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
New unit-test that reproduces the corner-case
with disconnection. With graceful unloading
a previous unit-test verified that it worked
as expected.
This is restored from e6798e9062
after it was reverted (due to a PDF comment saving regression).
Since the issue is fixed separately in
0b27e85fc5, these tests can
now be restored.
Change-Id: Id84cda4f4599c559018247c32ea1205e154e4984
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This disables the unreliable reload test.
On a slow box, sometimes the load takes
a little longer than 5 seconds. Waiting
a bit longer doesn't hurt in these cases.
Also, remove duplicate test and give each
test case its own testname.
Change-Id: I556f6da9e49a7fa4cd9917bc9964dd9561b93817
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This test is currently disabled, as it is only
useful for stress-testing
Change-Id: I803d8d5818f004afa72bbf2dfe5c9d90b41e1133
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Fixes a race-condition due to having multiple
views, we will get multiple onDocumentModified.
Change-Id: I806a3cc31f768c9f159e599c69fd1d31755e6cd1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- Added view option to all other apps on mobile view.
- previously only text contains the view option in mobile view. ( click on hamburger menu)
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I04e06e346d398d947e637bd71e4134bc3e901c4d
Currently [in docker it is possible to do configuration through
environment variables](https://col.la/dockercodeconfigviaenv), which
works using the start-collabora-online.sh start-collabora-online.pl
scripts. This commit lets COOLWSD listen to the same environment
variables directly
Change-Id: I75762ad620132037523fa82167a3ff17075c7027
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
- This patch only adds an option to enable this feature. It is off by
default
- This allows you to, say, have a docker container and --restart=always
to restart when you update the config
- This patch only listens for "/etc/coolwsd/", so if you specify a config
file that isn't there then you're out of luck... An improvement for a
followup patch will be make it listen to wherever your config files
actually are
- The current docker scripts only listen for modifications, so this
matches that behavior
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I674756b0188893f5d192885bb436256aa827e7b5
And also allow automatic re-trying to decide if this is a reproducible
failure or an unstable test.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I254d83cc1acc6b80ec3978e26e5fd64e676ff2a9
This fixes a regression where PDF comments were lost when
the document closed immediately after adding a comment.
Change-Id: Iac78ec13fdbaa7d1ffe25067ea0f41704abb3312
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This reverts commit e6798e9062.
Reason: this commit caused a regression. PDF comments were not saved.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I180ecb9e298e37bd5a989a8cd6d23d02c25a6929
- Add or remove additional css class to the Tabbed view > File Tab >
Save button whenever the document is modified or saved.
- NotebookbarBuilder: onCommandStateChanged: Re-use existing state var
There seems to be no need to call again the object and its state when
we already have a variable for that.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I3d0bee8903f4e7309d5d5e7389a824bf39e72651
This is **not** nonmodal dialog but it looks like. This is a modal:
user can’t interact with background content.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I9e68afadca3d6ab04311f18d38a9dd43b9679522
The problem affects no-a11y case since the editable area is empty.
Since no copy/cut event is emitted, Clipboard.copy/cut is never
invoked. So we need to emit it manually.
To be honest it seems a Firefox bug. We need to check if they fix it
in later version.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I036414b5ffb5b35ff1ef1d7de1044e890832c673
Fix extra adding for sheets tab on mobile view
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I5139e0072caabd7db7c4d1255b497cf24e1359e6
It uses jscpd project by invoking it using npm script
"duplication". For now set minimum lines to report
as 26, because we have some 25 line duplicates.
Later we can reduce that number.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I20e0ba9a07528e15a65f01d2247420da33339749
added fold svg icon which was missing for dark mode
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I650a9adcdbbd768017d4ba0e17277de562e7d184
It happens in many cases that it's not clear what are the steps to
reproduce the problem to be fixed, let's have some explicit instructions
on how to document these + the reasons for having these rules.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I725f78dabd388fa85db0286e354527fd96e6d6be
Currently translated at 100.0% (467 of 467 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (519 of 519 strings)
Co-authored-by: Stanislav Horáček <stanislav.horacek@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/cs/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/cs/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I94cf0007eafa9edc7fbc0bdb298a141035bd894b
this fixes missing font name and font size comboboxes
when opened spreadsheet protected from editing
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I364fe345756549270cabafbe76d9a6b040a48ac3
In order to allow screen reader to track caret navigation properly
even if there is some connection delay default behaviour for
Left/Right arrow key press is no more prevented in
Map.Keyboard._handleKeyEvent. In TextInput._onKeyDown, it has been
needed to handle some special caret position, such as when cursor is
at begin or end of a list item prefix.
When left/right arrow is pressed and text is selected, selection is
cleared and caret needs to be moved by one char left/right.
However, for an editable div the behaviour is different:
- when left arrow is pressed caret moves at start of previously
selected text
- when right arrow is pressed caret moves at end of previously
selected text
So we needed to prevent default behaviour and simulate the same
behaviour that occurs in LibreOffice.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Ifa5e9847bbbf77b934a3bcbd04545f4a55afd19d
Will add bullets after pressing enter
Example: press * then some sentence and enter
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I63676eb3f725dba0d9fdb0a12cb31847fef8e663
apparently since:
commit b0a7532b08
Date: Sat Nov 14 19:43:02 2020 +0300
Turn off broadcast on presentation preview tiles
so drop this field from TileDesc and protocol.txt
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ib4b1eca0d30911e13c245551cb3e3261afc99dd2
getTokenString(const StringVector& tokens...) loops over each
token and calls
getTokenString(const std::string&...) with token.getParam() on each
token. We already have a loop over each token, so we can merge those
loops here.
perf reports TileDesc::parse taking 3.68% of the time in a hour
of an interactive writer session with multiple participants
Though looking further, broadcast seems unused by anything now.
To be followed up on that topic.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I244637043c58d90562001ec58fac494da54e55a8
calc -> insert -> hyperlink dialog has combobox which is
useless, let's replace it with edit field
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ifc5c10028fa55459a8433ae0b932c857aa883de8
we expected number in the id, but it has been changed in
commit f8e53bd851
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5c8793facca03a586918f411d7e88066ac30dc16
introduce it in Calc only as it has better knowledge about
cell content and what should be edited
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Idc66e3380e83975b44ca88d47586de3bd0e7dee9
it seems we generate previews later now
it might be related to commit 04ac02b033
Do not request tiles until we are sure a canonical id is set
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I250c37049ba62c4cdc06b16413767edafc362dc0
this is only desktop test that fails, let's skip
it until we fix the regression and not block others
from testing their patches
regression was introduces in:
commit 04ac02b033
Do not request tiles until we are sure a canonical id is set
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I1de44a94121648b381df67d926bbc33dd1044b76
Add new property to commentSection (children).
Update commentListSection for Writer comments.
Now the comments at the same position are separated.
The parent / child relations are set by "parent" attribute.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I0a8ab060c133a51f4d09e71777cc6233b78a6efa
and not just some of them discarding the others, so we
always apply all messages received in order the arrived
without omissions.
TODO: apply them when the conditions application requires become
true rather than depending on a timer poll.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I265b6ccb45e211c15c5f4daf9d6572fa051b68eb
to parent from parentId while importing the comments.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I2f8fa3eae995d894b33558a2fb67639c7af5f1a1
how it is expected to work:
before this patch, whenever comment is saved,
editing comment box(DOM elements) is deleted and
a new comment(DOM elements) is created when we recieve the data from server about saved comment
This commit prevents the deletion of the original comment box which is being edited,
if comment loses focus it is saved. If user explicitly saves the comment then it
follows the routine which were used previously.
Many checks were added to prevent comments from getting unselected(select means it is highliting the text in doc)
or getting collapsed
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: If24ccbcd7a0287b659f790db486ada5d17608a32
It seems the CSS class was only added to impress in
c582d75f57
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4e8884004bbd1a4f6e4e62a841eb940e23065f50
Added support for keyboard shortcut to add
- Numbered list Ctrl + Shift + 7
- Bulleted list Ctrl + Shift + 8
Still type * (asterisk) then Spacebar to add list view not implemented
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I097691edd81fdc95718d778fcac57c0b0d3e9fb5
Read only sessions cannot modify the document, so
we shouldn't consider input from such a session
as potentially modifying the document. This
becomes important during an abrupt disconnection
where we look at isPossiblyModified() as an
indicator for data-loss.
New unit-test that reproduces the corner-case
with disconnection. With graceful unloading
a previous unit-test verified that it worked
as expected.
Change-Id: Id84cda4f4599c559018247c32ea1205e154e4984
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
https://github.com/CollaboraOnline/online/issues/7164
might be best to add everything to this queue, and not drop any
incoming message, and then process the queue when both
this._map._docLayer and _isReady become available/true.
But perhaps this serves as a reasonable safe checkpoint to return to
if it becomes necessary.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ib77a4126437689709e2ca0915667b5b9b2f2f207
RecentFilesAdapter.java:76: Error: Value must be ≥ 0 [Range]
filename = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
RecentFilesAdapter.java:97: Error: Value must be ≥ 0 [Range]
length = cursor.getLong(cursor.getColumnIndex(OpenableColumns.SIZE));
file_explorer_grid_item.xml:42: Error: Inconsistent alignment specification between textAlignment and gravity attributes: was center_vertical, expected center_horizontal [RtlCompat]
android:textAlignment="center"
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I663a89b0ecce03b067e1fa216a030a19fa578da5
- update gradle plugin and version
- use mavenCentral instead of jcenter
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Iffe41bd7d5ff3e6a6d1acbe70c25e21e5a856548
There was a bug that when we selected entry and pressed enter
then removetextcontent event was trigerred.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ie0aae2fd24c69043d3133d6d257622a967d34cc1
when we close last jsdialog then move focus into
map to avoid focusing document.body what causes
that user cannot type or move focus to the next button in
the UI
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0f9d38ecbac476c769dd66b820deb373e3cc224e
we request entries with dpi scale factor to
generate bigger (higher resolution) previews
then entries are scaled down in CSS to keep
relative size to other components constant
but text become smooth thanks to bigger resolution
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I00c59be45a92667768385f7f70c1ccd8248095af
also make font previews persistent as they don't change
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib68667e4b4f612a51932f24179e0ff197dde3c09
- invert colors of images in dark mode
- don't invert in style previews to show real effect
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2005cd068b3f9a636e24307a3035728f4e139379
Combobox will be real combobox (edit field + dropdown).
Adjust styling from old .select2 rules to our combobox.
Remove old code for select2 comboboxes in notebookbar.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Id3ea16bcb004675cb7d5743f394ac432e74918cf
Added keyboard shortcut to see userlist in document
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I8ac5043382ffe49fe2644c76c6b77af85e1e5937
- also fixes the misalignment in cool-annotation-table
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I58db4c6918c3a36a230c6f9317ddf39c3361bb24
This fixes regression introduced in commit 2ac7183e44
Add Left or right arrow on a tab label should switch tabs
When we are in writer: Alt + H, K - opens spacing dropdown
Before this patch focus was stolen by the map even if the
spacing item has focusBack property set to false
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2c510dc2aecbb1db846e0574c1b5f52b24d9114b
dblclick seems not to work on ios, but click does.
We can simulate dblclick with single clicks.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: Ic9ae58a39122025c9947294ebfd2292ffe04ae5c
wsd/ClientSession.cpp:520:32: error: implicit conversion from 'uint64_t' (aka 'unsigned long') to 'double' changes value from 18446744073709551 to 18446744073709552 [-Werror,-Wimplicit-const-int-float-conversion]
(counter < (uint64_t)(std::numeric_limits<uint64_t>::max() / 1000)))
~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Which is a problem since commit e0b70657fa
(cid#318912 Result is not floating-point, 2023-08-23).
Let's make the conversion explicit, hoping that makes both Coverity and
clang happy at the same time. No change in actual behavior intended.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ib9727f0df4df65a9504d421654d519bee0733b80
Also rename trimIfExcessive to trimAfterInactivity.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I62166a3ed5d70d1e6fd9804e91e07452978523fd
Currently translated at 100.0% (467 of 467 strings)
Translated using Weblate (Slovenian)
Currently translated at 99.4% (516 of 519 strings)
Co-authored-by: Martin Srebotnjak <miles@filmsi.net>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/sl/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/sl/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ieb7b43042ee5a4ceeb708c1d96ccc38c7c5fb278
Currently translated at 65.9% (308 of 467 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (519 of 519 strings)
Co-authored-by: Mike Kaganski <mikekaganski@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/ru/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/ru/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ic7337bb2d6197e6f7fe87673a88504349f8241ab
Currently translated at 100.0% (519 of 519 strings)
Translated using Weblate (Hungarian)
Currently translated at 58.8% (275 of 467 strings)
Translated using Weblate (Hungarian)
Currently translated at 97.8% (508 of 519 strings)
Co-authored-by: Andras Timar <andras.timar@collabora.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/hu/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/hu/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib9c07d24a03108258eac87fd4aab641aae1474fa
- regression from ec17f72fb5
- also removed the restriction to have "static" in unlock_image
url
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ie4f1170fb6a12db5218fb28f21d78f88ebc61d56
- original auth command shutdowns the socket connection
if the token is invalid
- in controller's case we just want to verify the token
for adminClusterOverivew socket connection
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I2e640a746c839ea6f4494ddbdfcb8f924150906f
The new option made by this gerrit:
https://gerrit.libreoffice.org/c/core/+/155079
This commit make that option true in Collabora online.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: I3bcb3092ab041e053db806ac704fc05b529e3950
JSdialog popups on Impress would have the keydown events not captured.
The events would be handled by the main document.
Now they will be captured by the correct element.
Signed-off-by: Oli <oli.baker@collabora.com>
Change-Id: I543e25ddbcb1766cc677f7fbc6629e8d04a5b394
Given a well-formed utf-8 string 'message' of messageLen bytes and a
desire to truncate to approximately abbrevLen bytes return the shortest
string greater or equal to abbrevLen that does not split a utf-8
sequence.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie623d8c1027bb4724485cab5b0bb6d3d1cd3d9ab
they sometimes do, and sometimes not, we can't assume that the last
byte is a newline and can be discarded without truncating message
text.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie5ea00f927a558b43b2ae38e1cac96c805e93fcc
for a short non-abbreviated message if it ended in a newline which the
more common variant would not.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I4105fb8eb67b3a38aebc745dfb1e79aa99f2d878
the std::string variant uses:
Util::getDelimiterPosition(message.data(), std::min<size_t>(message.size(), maxNonAbbreviatedMsgLen + 1),...
while the more commonly used const char* version has
getFirstLine(message, std::min(length, maxNonAbbreviatedMsgLen)
where getFirstLine is...
return Util::getDelimitedInitialSubstring(message, length,...
and getDelimitedInitialSubstring has
const size_t size = getDelimiterPosition(message, length, delim);
return std::string(message, size);
so the std::string variant's condition is one char longer for the same input
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I5b8c4523844501a43731ff3b4a939b76ebe472c3
perf reported 6.58% of time in collaborative multi user test
on 2023-08-24 was spent in TileDesc::parse and much of that
in std::unordered_map.
There are only 12 arguments in the map we care about here so
we can just used a sorted array, look by name on write, and
read by index.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Iadfc2001e298d8f4d46200c8488f0eb4cd8734c2
this is regression from commit:
f8e53bd851
Assign tab ids while defining tabs.
When opened Format -> Page Style dialog in Writer.
There was "123" label next to the tabs.
Also when switching between widgets using tab key
it was moving focus outside window.
Core is sending id as plain number what is easy to duplicate.
Let's add some unique name.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iebf70c7968f336761baf19442101ac98a948218c
Currently translated at 100.0% (463 of 463 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (507 of 507 strings)
Co-authored-by: Joan Montané <jmontane@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/ca/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/ca/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: If0102cbee5b03a841a0f981f5a058e81a412bc88
Currently translated at 100.0% (463 of 463 strings)
Translated using Weblate (Basque)
Currently translated at 100.0% (507 of 507 strings)
Co-authored-by: Alexander Gabilondo <alexgabi@openmailbox.org>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/eu/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/eu/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I2fd7abb99512784d6a75e3568f0fcb12c0d11b06
Currently translated at 100.0% (507 of 507 strings)
Translated using Weblate (English (New Zealand))
Currently translated at 100.0% (507 of 507 strings)
Co-authored-by: Rob Pearson <rob.dunedin@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/en_NZ/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/en_ZA/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I7fa179ebc9393c8b35e8057f9e3610b5d0ffb9d3
silence various of these in tests and utilities
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I4fcc95b1b5d5c95e5ac40782550f95c08a3467bd
we presumably want the current behaviour so silence with
an appropiate explicit cast
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ibed4cb2cc31b26195e407f25f7f0a2ea7172c67d
The newly added button in 24ac74db4f was
only added to writer
Also add css class
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I630640d94884cb5e50559fbbd8298554deb0a651
which isn't available in the current android toolchain
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I5834adb7c6211c7aad38f5977a7e425d9ca257fd
This way we increase status bar discoverability ( fixes#7098 ) and
group both search functionality in one place in the home tab
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia1fa8fe58903088aad37a560edd033a184d35e0e
A regression in change ID I8551242fc2b987f00c67088caa0ed07ee8526a72
caused the manage changes dialog to continue expanding when new elements
were added, no matter how big it got. This would cause you to be unable
to see all the changes when there were a lot of them because you could
not scroll through the list. This patch fixes the scrolling, without
making the list area very small again.
Change-Id: Ib29fb161522773ea9893b7bc21d06aab19b74c52
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
A box would appear when accessing the accessiblity mode.
This was because of the autocomplete feature.
This patch disables it when using the accessibility mode.
Signed-off-by: Oli <oli.baker@collabora.com>
Change-Id: I461956b591271b2d3513bce7f81d136da6ca37a7
Tab pages now hold responsibility for catching the event.
Events were previously assigned to each individual element.
Responsibility is on each page and not the "toolbar-wrapper" element.
This is to allow functionality to also exist in jsdialogs.
Signed-off-by: Oli <oli.baker@collabora.com>
Change-Id: I57681c3573d9931a79856fb8ed43f119bf019535
This was done to avoid using accelerator keys before a tab is selected.
Signed-off-by: Oli <oli.baker@collabora.com>
Change-Id: I4bc8a8cd8d885491624e8c769bcbab123104189b
There was an issue where on first loading a document and pushing the alt
key to bring up the accessibility mode, the up and down arrow keys would
not move focus up or down in the notebook bar. This only occured on
first loading the document.
Signed-off-by: Oli <oli.baker@collabora.com>
Change-Id: I003b74ecbaae80a6baf33709fa16d47261a1ed2e
Previously when focus was inside the notebook bar you could not change
between having focus inside the tab pages or on the tab buttons. Now the
up and down arrow allows entering and escaping from the tab pages from
the tab buttons.
Resolves#6933
Signed-off-by: Oli <oli.baker@collabora.com>
Change-Id: I1cf696223ff5739e6a48095acbdf3fd778af1ffd
- priortize theme settings from SettingsActivity over savedState
- fix darkmode toggle button does not behave as expected
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Idb884cba3af335edc0936736f35610e91cfd64e6
Added information in help tab (keyboard shortcuts)
- About moving back and forth in between calc sheets using keyboard shortcuts
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I7ccbc194fe67fb36f9d68827dfa7c5636c9bc7e8
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
vertical tabcontrol has "vertical: true" property
for now just handle it as normal tab control,
it doesn't use tabpages but regular grids for
tab contents
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ie374f8c68cbbf1e3076ca884ab54568ee204f04c
LO is offering this using `CTRL`+`PageUp` or 'PageDown`.
- but there are some browser restriction related to security purpose some of the event we can not prevent.
- for an example CTRL + PageUp will not be prevented using JS in browser ( as per browser security rules )
- so i have tried to add this shortcut using Ctrl + Alt
- we can cycle through all sheets.
Adding this small enhancement as part of this `HackWeek` :)
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I4e76a0cc382fbe97f16037c8f9d78174e8663491
- Previously giving --with-lo-path as a relative path caused collabora
online to crash with "component context fails to supply singleton"
errors
- This patch uses readlink on the with-lo-path option, expanding it into
its full canonical path
- I could probably have gotten away with realpath, but for consistency
with --with-lokit-path I decided to use readlink -f
Change-Id: I16aacddbda9749451578fb7aded6c3c4e145ee26
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Otherwise eg. non-ASCII shortcuts appearing in files can cause
failures like this.
Traceback (most recent call last):
File ".../rpmbuild/BUILD/coolwsd-23.05.2.2snapshot/scripts/unocommands.py", line 454, in <module>
toolbarCommands = extractToolbarCommands(onlineDir)
File ".../rpmbuild/BUILD/coolwsd-23.05.2.2snapshot/scripts/unocommands.py", line 163, in extractToolbarCommands
for line in f:
File "/usr/lib64/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
Encountered after 1a2500c8d3.
This is not ASCII in browser/src/control/Control.NotebookbarWriter.js:
`'accessibility': { focusBack: true, combination: 'AI', de: 'ÖI' }
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I72aac2809530c14b9440f73e5072db17770f438a
On entering full screen the normal browser window goes "idle" on losing
focus. When the full screen presentation exits no "focus" events gets
sent to the normal window so clicking "presentation" again doesn't do
anything as idle inhibits anything getting actually sent to the server.
in:
commit 5f655a7555
Date: Tue Oct 13 19:26:16 2015 +0300
loleaflet: print handler tdf#94607
a similar _map.focus() is done after a similar L.DomUtil.remove()
and doing there same here gets this case to work.
https://github.com/CollaboraOnline/online/issues/7102
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Iae44ba949af2a64bf669b9d5f1113c647a354af1
Without it in calc -> insert -> chart treeview
for chart type selection was invisible / 0px width
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iaf28c4860adcd00591a638fa10838fe8719bee23
- It exits LOActivity when lokit thread finishes using lokit_main_mutex.
But if we edit document and exit without saving lokit thread gets
finished but COOLWSD is still running to clean up the docBrokers.
It takes some time to clean up this docBrokers.
We need to exit the LOActivity only after COOLWSD is finished
- for that I have added coolwsdRunningMutex again
- it was removed in ad32888d7c
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ic9785f5aa55deafbac98efc4013bd3376d0ba62d
- to show previews we use slide-sorter element
and presentation-controls-wrapper as container
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Iaed0892779d5016a565d556955305317129edea4
Block only close requests from the user clicking on
'X' button. We need to always process close messages
from the server.
Eg. Format -> Theme, click Add:
then close parent dialog using 'x' -> should not work
then close parent using 'cancel' button -> should exit dialog
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2164f01acf47a67dc1e35b85b37142bc88dfedc4
Full screen feature is not available on iPhone,
only on iPad with iOS 12+ (https://caniuse.com/fullscreen).
Instead open svg directly in the browser as a fallback.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I047051e420a0d786ec084817b8fe19c34e086cf6
When button is inserted using postmessage API
it can have no command property. Prevent us from
TypeError here.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I84f1f94befb57d0e18699052c881b90de55a1239
newRequest is always called with a const Request& already so might as
well make this copy inside the function rather than passing a copy
by value and moving it.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ib572637d29590b8b470a42da3293065ed86d7dd0
When renaming file in writer use the original extension
to save the file if the user doesn't provide one
Signed-off-by: NickWingate <nick.wingate@collabora.com>
Change-Id: I6b6293bb7bf8ede38a8fa63995ad553d1e45ee1e
iss ctor takes a const std::string& and constructs with a copy of str as content
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I2805c869cb034a9b87e6e95cc58419b54a078b63
Document that authentication changes need double amount of care,
compared to other normal functional changes.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ib1820581f7175957f08f5e080d542c7441a3ffa2
With the use of a single flag for both, the
logic is now less ambiguous, as we cannot have
termination flagged without also implying
shutting down.
The assertions are no longer needed.
Now that setting the termination flag
explicitly implies having the shut down flag
as well, the checks are simpler. We only
need to check that the shutdown is not set
to continue running as normal, since having
the termination flag must perfoce mean shut
down is also set, there is no need to check
both.
Change-Id: I99e22f5668385182b0594040a8e3354b55e74642
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Replaced id based checks with uno command ones.
Removed unnecessary function from notebookbaraccessibility. We don't use automatic id assignments any more.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I3ad69916dea72d0e7e37430e629d74763c79005c
Use string based approach to avoid errors.
Eg. 36.37 was a problematic value when multiplied by 100.
This fixed indent spinfield in sidebar.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iae25acbf59cedfd20cbcb0677fd87e08d06c3f6d
sometimes svg generation takes more time it seems
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0e6ad493cb452a9725235f2c01c6792126b8de9c
this was changed in the core:
commit 0a549b2c9595cd076e3b503b67df93bff380885a
svg: export text decoration for text run not paragraph
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I8906ee07c7ff88c9dcdbebe73d2c620e797a8b3a
This reverts commit 8ce751a3ca.
- Any PR coming from fork fails
- User needs to manually go to:
settings > Actions: General > "Workflow permissions" and allow write permissions
- Right now we have too big of a threshold (26 lines) to be as useful as we would hope
Probably best to remove this action for now and instead use directly
the npm package (https://www.npmjs.com/package/jscpd#usage). Advantages:
- More control over what is analyzed
- It can be add as a step in make check
- User can run it locally using make check; CI can also use that.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I3c112218a83fd6e56e7fb2f47b24315347a74cdd
so the autofill handle in hidpi didn't work
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I718d9a8d3954a441705849eba174fe6b5b2983c4
We need to allow loading media sources from
the web-server URL. This seems to be necessary
at least on iOS.
Change-Id: Ic7b23c4f80b975460de9311a67f3c5cb51758d14
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
use the xml token "use-window-font-color" to toggle auto color on.
https: //github.com/CollaboraOnline/online/issues/6546
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib14b144ce6f593114a8130f5816f479d5cd4fe85
When we get in one or more tables screen reader reports row and column
count.
When we get out one or more table screen report reports "out of table"
for each table.
When the fosused cell changes screen reader reports new row/col index.
Screen reader reports cell paragraph content, too.
Added also cypress tests for checking that the table/cell description
string is correct.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I078b29a2f76f91df479f75db76113c80405f7169
configure currently requires a min of c++17
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I613dac6e66c3e77183d46623346969179bccc489
check this one like we check all the others
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Id8379c6873fe7dd6466dc265cea6847d120aa0ce
map is never null so make it a reference
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I9f6ad863d0a1102dd7e26a5668b1c6ba71249580
To avoid confusion with the WOPI access token.
.
Change-Id: Ie38e0f11d0655e89eb1c7f1e20b73a9b8756ba21
Signed-off-by: Henry Castro <hcastro@collabora.com>
- Graph axis text is too small (10px) better to set it to 1em based on
parent div (16px). Good to also set any group within svg to 1em to
avoid any surprises
- Currently tablets from one card is spilling over to the next card
when there is not enough space. Better to allow scrolling.
- The left pane should be hidden even before reaching the mobile
size. This will fix the lack of space for cards and avoid everything
being so small
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I58c88385875469b56542703663e570ab4d63fbdc
Also tilecombine request now uses the canonicalviewid
Signed-off-by: Paris Oplopoios <paris.oplopoios@collabora.com>
Change-Id: Ib386edcf78de17cb4fc3d8c3c6ce65f6b52c8b5f
- refactored special case for templating
adminClusterOverview.html
- removed useless variable
- format the code, fix indent
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ib22cb481db7c7ef94b11f3044d0cd856e6d0eed5
- increased the sidebar length
- fixed html not covering fullscreen
- increase the number of card from 2->3
- remove unused property
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I86f6cf0225d4675bbd69dd0ebd7f77dbba6f9858
- if podname doesnot exist use serverId as title of card
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I7c09b7a8943b8a6a19bc6937ff180a06d82d12a6
- added DlgLoading class to show loading modal dialog
- upgraded the d3
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I8bd99bbadaa59a7de1e83bebde8db0dce920705d
multiple cool servers
- also good to check response first as client
might use persisted cookies
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Idcd85266a4cc5020aeaca7d7fb8428bc0a3d7d32
and bundle them together when emitted from the browser-side
// i.e. FIXME: new multi-tile-processed message.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I69916cbe30c26686fb44a2d8d229704c459b6601
sometimes the deltas arrive in a different order, later in the same test
we have "ordering is undefined tiles arrive in so swap if needed" for
a pair of later deltas, so do the same reordering for this
intermittently failing earlier test
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: If51edb9a4e22d469d9e029c38da7348c34b17832
Unfortunately, we cannot show the hyperlink pop-up,
in client side based on cell formula, because the formula
had not been evaluated.
=HYPERLINK(A1,A1);
The server should fire event "hyperlinkclicked".
Change-Id: Ie2b743812493e1790b9e54f0050974c585e61e00
Signed-off-by: Henry Castro <hcastro@collabora.com>
Added tablet check for Insert buttons to display on dom or not based on passed condition .
- By default custom buttons will show up in tablet.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I103461b02405bc03d63671b885a31735668d4111
std::make_shared and std::make_unique
are superior to explict smart pointer
construction. Where we have private
constructors, we can't use them.
Change-Id: I492122f58e958113c6e6d31445c6614ad98c89aa
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Using our own http library, we request
cool.html with realistic parameters and
validate many key values sent in the
request.
Change-Id: Ie3c0ac042f64bf5d6ed21354a33efac801b32846
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We have http::Response specifically for
this kind of thing.
Change-Id: I57130754f95c06f5ab958ca373f21763e74cb6a2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The GetCookie was removed due to sensitive
access data because the browser can block to
security concerns.
Change-Id: Ifaeb495202a53125bda9e3705b6e33b7e54e56df
Signed-off-by: Henry Castro <hcastro@collabora.com>
The access token will validate the session
when a websocket is connected to the server.
Change-Id: I008b04a499ab0d85fd6f95fc06a511f800c0bb2e
Signed-off-by: Henry Castro <hcastro@collabora.com>
Provided support for screen reader to report key accellerators
description.
When <alt> is pressed screen reader says something like: "tab control
Home tab selected".
When an accellerator is typed such as "N" screen reader says: "N
Insert tab selected".
When an accellerator for a tab item is typed the screen reader says
the typed letters and the item name as set in the 'alt' attrinute for
the button element.
For instance by typing accellerator for bold style ("1"), the screen
reader says: "1 Bold"
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I64b198f79cb9f7f13dcd1a4fe0890e4317e512dd
On focus away or if NotebookbarAccessibility is disabled then remove accesskey
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I04310f7ee4ab599a0c53c7aceaba459dd7641681
The input field is already being hidden for mobile. For Tablet and
with the increased amount of UI elements on the top bar best to hide
it also. Renaming the document is a quite rare used action when
compared to any of the other top bar actions (switching tabs, open
sidebar etc). Better to hide the #document-name-input when on tablets
instead of trying to fit everything (and end up obstructing tabs for example)
Tablet user can always:
- Use the integration (already used to do many other file manipulations) to rename the file
- Use the in-app Save as can still be used to save a copy of the current
document with a different name
----
Possible future improvements would be to add the possibility to rename
the file when using a tablet:
- Add menu entry and tabbed view button
- Control.Menubar.js something like {name: _('Rename Document'), id: 'renamedocumentbtn'}
- Control.NotebookbarWriter.js add bigtoolitem Rename Document
- Maybe in Control.UIManager.js add a renameDocumentBtn function that
- Creates a JSDialog with document-name-input element + Cancel btn +
OK btn
- Ideally that input element would re-use the functionality from L.control.documentNameInput() -> Control.DocumentNameInput.js
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I968e806a4a9e0018b38b87fc249a57e5af099c78
When Collabora Online is inside iframe and we load
Calc spreadsheet, after few seconds we receive CellCursor
message. In case when user was typing outside iframe in
some textbox - we were stealing focus, what caused
that user started to type inside spreadsheet.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I12a5501be6f59f73830ff9bf25c98a00492b6caa
Simplified code:
+ re-use the bit mask as an inner loop counter.
+ turn alpha only rows into zero length with agreed lastPix.
+ keep lastPix around on the stack.
+ handle odd widths in a duplicate slow-path
Change-Id: Ibc7630f7187ea5f4904c6fed14dda28cdfbf7523
rle: further optimize the pixel reading & de-compression.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ifcaaa45d1de6532b3fd43015c47a37daf56c2ea5
and so this loop never finds anything, the intent is clearly to find
an existing comment in this cell so use the right field for that.
possibly a problem since:
commit 922ae4924a
Date: Wed Jan 26 15:08:31 2022 +0300
calc: Fix new comments do not check tabid on insert
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I11208493ef7eae6a01576d90129b25ed9f792d62
We don't want to dump the whole paste buffer as hex, or indeed any
large mis-encoded string - instead crop to the problematic section
for easier debugging, and no performance hit.
Change-Id: I30518beea436895a42b3429c3cb6e16e2093cca9
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Do not wrongly switch part of the UI to edit mode when on read-only
mode. Best to be only remove readonly css class when it's not needed as
opposed to removed it whenever refreshNotebookbar() is called.
Before this commit:
- We were showing tabs in wrong mode (readonly mode) -> every-time
refreshNotebookbar() was called. Thus, initial tablet mode was
appearing with icons and actions from edit mode.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I6ad9c8c14e60d4c3513f63b75717db0a124b73ea
Introduce getTailsGroupRect method which will be
different in every implementation but share findTailsGroup logic
using above function.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I321abaa2579bfdff08c8cd4df2e781cd9a28c3d3
I added Headings + updated some wording/examples in:
- Feature Request
so when users submit a "New Issue" to Github, it will look nicer.
Signed-off-by: Tex2002ans <Tex2002ans@users.noreply.github.com>
Change-Id: Ic7c5b0a841d39b2cd2b20c5d4a31846eba0c3f4e
I added Headings + updated some wording/examples in:
- Bug Report (Smoke Test)
so when users submit a "New Issue" to Github, it will look nicer.
Signed-off-by: Tex2002ans <Tex2002ans@users.noreply.github.com>
Change-Id: Id72ed9ac10a6ae935fb5fa4b1001c11683f46672
I added Headings + updated some wording/examples in:
- Bug Report
so when users submit a "New Issue" to Github, it will look nicer.
Signed-off-by: Tex2002ans <Tex2002ans@users.noreply.github.com>
Change-Id: Ie32f2c9a4c6ed47aaf198286a0d39831fa397992
* Added visual feedback to inform the user that information is already copied
* Change the image to a check-mark temporarily
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I41debc2421841e4f2235f2d31c49d3687a096339
- accessibility key features
- focus on tab when press `Alt`.
- move back and forth tab focus by ArrowLeft and ArrowRight
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Id8c8e2a8bcb57c90e0762dd3916b851fff8e0a6f
On actual iPad (2048x1536 native, 1024x768 browser), in
landscape view in Safari, mobile phone view is shown in
online instead of tablet.
This reverts commit f1e9ee72fe.
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I2cd4ba6cdcd616760c06c7db479e6d13be3d83b4
Fixes type error on switching sheets in Calc:
Steps to reproduce:
1. Open Calc spreadsheet with 2 sheets and 2 user sessions
2. Switch user A to sheet 1
3. Switch with user B to sheet 2 and select few cells
4. close user B browser / tab
5. switch user A to sheet 2
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I942becceaabae3a6e1bbbd230e12166348b341b3
problem:
till now we used values from DOM elements which were unreliable,
sometimes they are not discoverable due to nested iframs.
That threw some 404 due to incorrect theming path.
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ibc291ce9f64db799095e1edcb14c598bdd085de7
tools/Config.cpp: In member function 'virtual int Config::main(const std::vector<std::basic_string<char> >&)':
tools/Config.cpp:480:18: error: ignoring return value of 'int chown(const char*, __uid_t, __gid_t)' declared with attribute 'warn_unused_result' [-Werror=unused-result]
480 | chown(proofKeyPath.c_str(), pwd->pw_uid, -1);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
From fc946198d3
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: Iaa4db6fb4dc6f742779754d4e05708aa8f41ebd6
* simplified the tooling a bit: use coolconfig for creating
RSA key pairs for WOPI Proof headers.
* got rid of a dependency: ssh-keygen, towards leaner docker images
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Iaf468b5c8585d45027f512bb0a287ab77afb1ea9
This would have only a small impact on memory use, and a large
impact on interactivity, performance and bandwidth use. So lets
not do that.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I07b2538cd4f5cd2c91926cfabeaa159dd992b068
in some browser scrollIntoView causes problem without parameters
in this particular case problem was entire view being pushed upwords out of view
reproducing steps:
Open a spreadsheet in two views,
With 1st view, navigate to bottom right corner via Ctrl+⬇ and Ctrl+➡,
With 1st view, type something in that cell, and then the cell above (stay editing the cell, don't press Enter),
With 2nd view, start typing in A1.
2nd view's editing view is pushed upwards
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I4bc551de321483608eb210718c1d81a622de5a6d
This fixes the problem when we requested a preview but
core didn't answer. This can happen when we have
nviewid mismatch and error is generated in logs:
ERR Session is not found. Maybe exited after rendering request.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I951a05432c899a8e7d210dec7d57177d6c7aae7c
In calc and impress we send different data depending on the view
in status: message which is triggered by LOK_CALLBACK_DOCUMENT_SIZE_CHANGED.
Every view can be on a different part / sheet / slide where document
size can be also independent.
This helps to reduce status: messages sent to other view when
switching sheets in other view.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5b287f377a551affcfb4d12b6114dffa0fd51992
If we set the initial backgrounds without `!important` then there is
no need to use `!important` for dark-mode (since we are already using
a more specific targe via data-them attribute)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I600629dfc0485edac6ff725f6278de1501e1c9a7
While scrolling using scrollbar we tried to prefetch
lots of tiles adjacent to the view.
Introduce timer which will protect us from prefetching
tiles we will not need when scrolling is fast.
We will avoid doing it synchronously on every little step.
_update is called a lot in onMouseMove handler:
_update (CanvasTileLayer.js:6220)
...
panBy (Map.PanAnimation.js:51)
scroll (Scroll.js:11)
ScrollSection.scrollVerticalWithOffset (ScrollSection.ts:657)
ScrollSection.onMouseMove (ScrollSection.ts:776)
CanvasSectionContainer.propagateOnMouseMove (CanvasSectionContainer.ts:1097)
CanvasSectionContainer.onMouseMove (CanvasSectionContainer.ts:1403)
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: If785fd0c0cc9076043e348b86a09577ad9fa667d
When all users idle their activities
for at least 10 seconds, we take the
opportunity to trim the memory footprint.
We are careful not to issue a subsequent
trimming too soon. A minimum of 30 seconds
needs to pass to trim again. This should
give a decent balance between performance
and reduced memory footprint.
Change-Id: I1c8b2c4a265c9aa0ac5033762695706ad970f11e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
this.accessibilityInputElement.focus();
line in onDocumentKeyUp in browser/src/dom/NotebookbarAccessibility.js
caused view to jump, in result half of the screen was white when
document was very long and had comment inside
To fix this insert accessibility input at the beginning of the DOM
so browser will not try to scroll anything when it is focused.
this is regression introduced in:
commit 3e40f3fbe4
Add functionality for notebookbar accessibility keys.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I68a1371928a5a3c02be32a3a9eab2ba909bb8ba0
Large Clipboard and document idle modals were being set with tabindex
0 allowing for manual user focus plus were being focused dynamically
for each instance:
- Transfer all that (just once) to showinfomodal instead for the
cases where we have buttons
- This in turn sets the things to the parent (dialog itself)
and not the subcontianer
- Set tabIndex with negative value so, it only allows focus via
code
- This fixes the weird outline (focus) that sometimes would appear
on sub containers of that dialog instances
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If40192e05c4b0e25e2ce71bc612ab64fc54a29ec
when any dialog is shown we block executing uno commands
don't count snackbar as a dialog and allow full interaction
of the user when snackbar is shown
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Idb1ec1aff9532ba2f1789157982cb25843df0c31
With c04c065edc we start to dynamically
set the canvas background. The problem is that for Calc cells do not
have intrinsically a background and thus what we end up to see as the
document background color is actually the canvas color.
- Make sure that when we are in presence of calc we set the
canvas color (clearColor) with the value coming from
documentBackgroundColor
- To make it clear: create a new CSS variable to be used as
background-document
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4c456e4aeea233609ee58684d967984dd8afd63a
Should help for single user with large screens.
Also dump delta cache sizes on USR1.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Id16a287be6b05cee5681abe1d9d2dc0ec61cda2a
Otherwise when we get under pressure re: canvas' we loose useful
statistics around the number of deltas applied.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I44a089e4af2819007b8f400b506292f8d469ff82
When we need to re-constitute a canvas from the cached compressed
tile.rawDeltas, we could re-enter via var ctx = this._ensureContext(tile);
as we had to populate the canvas with the previous content before
applying our new delta.
Its important to ensure that we don't then try to apply the same
delta (or set of deltas) twice - ie. move the context/re-constitution
before we append the new deltas to the tile.rawDeltas.
Previously showing the same delta applied twice:
Applying a raw keyframe of length 7320
Applied keyframe 0 of total size 264270 at stream offset 0 size 262144
Applied chunk 1 of total size 2126 at stream offset 262144 size 53
Applied chunk 2 of total size 2073 at stream offset 262197 size 2073
Applied chunk 0 of total size 2073 at stream offset 0 size 2073
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ib23bb81e6d3534f140ff3472afed1010c6f98cc2
We have no obviously good mechanism for re-fetching them, and
this seems a bit extreme - even if they are otherwise old.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ibaa3d5185493de45efb2887d94b0bf1ee7cac245
In the obscure case: we could have garbage collected the keyframe
content in JS but coolwsd still thinks we have it and now we just
have a delta with nothing to apply it to.
+ show a count in tile debug-mode of this case.
+ re-request a full tile ie. with oldwid=0 if we hit this case.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ide95c54086fcc48d0deed1a090b3b9dd4aa49cd5
+ don't keep a canvas around if we free its rawDeltas.
+ don't keep imgDataCache around if we freed the canvas.
Change-Id: If3e5be642c9e7560bb889881fa62f25031104658
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
gdb seems to really struggle with versioned symbols & types in glibc.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ic59020c2e5c88fbeb7799d3f5c06752097a5ad40
This should catch the case where one view should get an empty
update delta, and the other should get a new keyframe tile.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I3ad8f564cc45d80186430b463214ffcf092346f3
problem:
regression from 919db16
when address input has focus and keyboard is open,
tapping on sheet would not close keyboard and bring focus back to map
only way to close keyboard and focus map was to accept the input
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I2c6f23be9efcbbe8e4d47d11505074a75abc000f
Also: address parts of #6897, primarily:
* remove the problematic aspect of bumping the last wid in our
TileData, when this could trigger a re-send of a previously
sent delta, causing tile corruption.
* instead append an empty wid entry.
* as an optimization - if the last entry is empty update
the wid - since re-sending an empty delta is of no
concern.
* simplify a number of code-paths that special-case zero length
deltas. All deltas now commence with 'D'.
* still track updates in the JS - by detecting empty deltas.
* shares more code and simplifies various paths.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I02af6d4b152524c201b6985b7a3497da7f08a517
However, don't force rendering a keyframe, only sending it - other
clients may be happy with deltas. This is to better handle:
window.app.console.debug('Unusual: Delta sent - but we have no keyframe for ' + key);
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I4efff0f6b1d2817e6b8bd567eb3b098383a1ef42
It's fine to be a keyframe and have appended deltas too.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I205e44e0b019b3eec0ce266e9a544b060d0bce4d
No enter key will not be necessary to change tab by accessibility key
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I9ab9e004e9dc883d18b8f750a9a400e1f318240e
- android will not even show a popup
- for some reason after sdk 33 checkSelfPermission returns PackageManager.PERMISSION_DENIED for WRITE_EXTERNAL_STORAGE even if it given permission implicitly by android
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: If50df0df0322d0bddf30d5ff5fb13ab9c010ed87
Set Minimal width for suggestions list
Added some padding for spell check text box for more readability
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I0fa5bb60ece88e4107408448a17378b526020784
Before this commit this option was only available on tabbed view
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I6e027f1b84d09e802f7ea6c6fd9e5144cae2eb91
Revert "Avoid crash when pasting image in debug mode"
This reverts commit 78558fe9af.
Instead of detecting paste command and not trigerring assertion:
fix frame type so it will be binary in case of paste.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: If5c726463459be7eaffae1522df522dfa1d74443
problem:
on mobile phone keyboard used to flicker when you tap on cell,
even if you were not editing inside cell
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I47d940ef32297fdf846ed4370411743982fcd3b7
after commit 51d19dd60e
annotation: avoid saving comments on losing focus
We had regression causing collapsed comment to be completly hidden
if user first opened 'modify mode' and clicked outside comment
area. Then comment was collapsed but when selected again - content
wasn't shown.
This commits makes us sure that when we select comment again
it has visible content.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4fc9f0bb7d6649c0aa88bbb9c4cc69ed5cbf57c9
Show the existing state as-is to aid debugging, rather than
polluting it with bogus data, also update the screen immediately.
Change-Id: Ia6f0033208a5ad29eca374f24f215ffc5104301c
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
re-factor histogram rendering out, remove crufty paths to track
tile metrics and do them unconditionally - some counters should be
small & fast & simple. Simplify debug output of tile/deltas.
Change-Id: I3b615719ae2540f855597e52e6c35594dbe5b3f4
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Share sorting tilecombines by part, and de-duplicating on key.
Ensure we build wireID list and send oldwid data to save
bandwidth and avoid re-rendering keyframes un-necessarily.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I8180fceca22f1369e577bba4de7fd8a6fdbc011f
Disable the 'forceKeyFrame' for tilecombine messages from the client,
we have a larger cache now and it makes sense to honor and track these.
forceKeyFrame was signalled with a zero oldWireId - which is the default
if we don't have it set.
Change-Id: If96423e96f8dc578a634ed5093517dfa6702cc1b
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
refactor a bit condition introduced in:
commit 51d19dd60e
annotation: avoid saving comments on losing focus
I noticed TypeError here at some point in my browser
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I416088333bb0c87b03c52aff3804fee8f7ada311
We normally throttle saving and uploading to
avoid hammering repeatedly, but when unloading,
we reduce said minimum wait by a factor of 10.
This allows for a quicker unload cycle, esp.
if we had just saved before unloading, or
if there was a previous failure.
Change-Id: I8710c9b86c05254ad9b9735d8496dd96900221e2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Had to disable a crash test due to incorrect
modification check before unloading.
Because we think there are modifications to
the doc, we issue a save, which will fail
because the kit is killed in said test.
Will be re-enabled when isPossiblyModified
is improved.
Change-Id: I0dd7931308e66e9a12d891a979d54e3f373ef99b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
And now UnitSaveOnExitUnmodified verifies that
we do not unnecessarily upload unmodified
documents because always-save-on-exit is set.
Always-save-on-exit is meaningful only when there
are modifications. Otherwise, we create identical
copies as separate revisions.
Change-Id: I933069d31d3d273c41734b58e0849680566e591a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This improves the disconnected session cleanup
and fixes a corner-case with the last editor
disconnecting before read-only sessions.
Change-Id: Iecb553d7f5be2c63fc55111e60e22b3d8aa668f6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
After change to dark mode in notebookbar focus will stays to `view` tab.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: Id0df0ded18a5858efa15eb0942b1ec69b6a716c2
instead of using hardcoded pixel distance...
affects eg. feedback dialog which was impossible to
access in very small windows due to position outside window
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2a85defcd2aabf1bdb8ec88d70b6e6a873dec75f
Snackbar shoudn't block user interactions with other
UI components. This fixes regression introduced with
vex rework to JSDialogs where snackbar become modal.
This fixes problem with "send feedback" and "Zotero"
snackbars which block users for ~10s from editing.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I71a2d1654b58a89162679346208409124f24b14e
problem:
unselecting shape would make document jump to position where
cursor was before selecting the shape
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I4aa75932631de51e84e3aca9b439f1a9a945e2d3
this patch assumes that dialog ids are incremental,
and no two dialogs are open at the same time unless
one dialog(parent dialog) has triggered another dialog
i.e: calc advance filter dialog triggers warning dialogs,
if entered an invalid range and closing the advance filter dialog
before the warning dialog causes a crash of LOK
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ic4ba3b4553fb0ee089b1ab9b50b1c023801b674a
- hard to find exception if browser logs error at info level
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I9f354480e1ee1d2da8a85973acd7b6563df83291
as far as I can see they are only written to, they are
not read from anywhere.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I0faf8f2b087c4b4228ac40e6804694be0f83eb54
problem:
In safari and gnome web when you scroll using scroll bar,
DOM elements on the slidebar and documents would get selected
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I222d246148d5d84a5c0b3cfdb1890350f428e696
Also logs unhandled exceptions from iframe cool.html
Change-Id: I6f7b7d1340c8818d3f81916d42d6d9ed2920e35c
Signed-off-by: Henry Castro <hcastro@collabora.com>
Setting a baseURL cypress verify if the server is
running and prevents to refresh when command cy.visit()
Change-Id: I1cffc0932d6a1ec4ee9793eb3935f60e02ca2545
Signed-off-by: Henry Castro <hcastro@collabora.com>
It has a bug, it executes twice beforeEach function
if fails or unhandled exception.
Change-Id: I005815d440af0309cf797e52fbfb3693896418a9
Signed-off-by: Henry Castro <hcastro@collabora.com>
If it is a remote 'coolwsd' server,
there is no way to rename or copy files.
Change-Id: Ic38302de5ecf3fa08fedd485d6060ede320867bc
Signed-off-by: Henry Castro <hcastro@collabora.com>
If it is already running remote "coolwsd"" server,
there is no way to create a remote work folder.
Change-Id: I17932fcca321e2f7e0cdfcab2ad678dbcffc56ed
Signed-off-by: Henry Castro <hcastro@collabora.com>
It is useful inspect logs and run unit test
with an already running coolwsd instance.
Change-Id: I6b01316d552e3d12bf63db9cc7e813adb33a20c0
Signed-off-by: Henry Castro <hcastro@collabora.com>
"Could not find a Cypress configuration file in this folder""
Change-Id: I7d5b2094d6cd10ca3da2a099650f830bee31dfb1
Signed-off-by: Henry Castro <hcastro@collabora.com>
Helper functions:
checkAccessibilityEnabledToBe
check accessibility state independently from current desktop ui
setAccessibilityState
set accessibility state independently from current desktop ui
Both helper functions check that ui state and a11y support in text
input element are in sync.
Enable/Disable Accessibility Support
test state toggling and state preservation when switching ui
Typing after switching accessibility state
check editable area content after toggling accessibility support
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Icce5ae148024a8abf9b65a90229915f28f720554
Now A11yTextInput inherits from TextInput.
Added hasAccessibilitySupport to both TI and ATI
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Ic296afb840824e7901202c9c089c4025c6bb8ab2
Pulled in changes performed by commit:
24c83b9e Rash419 refactor: consolidate mentions-related code in
TextInput.js
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I37577163ec2a8abf0131e276df83d6710dec4f73
Pulled in changes performed by commits:
847ade24 Szymon Kłos Mention popup focus fix
a006c917 Gökay Şatır Focus on the selected comment with keyboard.
02616ed3 Gökay Şatır Don't auto show the comment on Calc.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Icdc510f6d90af1b6f2379b6cbd4317940f0ac0ad
TextInput:
undoing something does not trigger any input method
this causes the editable area content not to be a substring
of the document text
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I803c32d243c6331dc21685a6d2ee03919e21a8cf
A11yTextInput:
_tabHint: removed unused property
_isTextContentEmpty: removed unused method
_onComposingContent: removed unused properties
_onCommandResult is no more used since on undoing editable area
content is updated by core through some accessibility message
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Ifc31a994661827d4f53891f85c6f7229bea758a5
Added toggle button/menu entry for enable/disable accessibility support.
This ui feature is available for Online Writer only.
The button/menu entry is added only when accessibility is enabled at
server level.
That allows to enable/disable accessibility per view.
By default, the accessibility support is disabled.
Anyway the accessibility support state is saved to local storage
if available.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: If5968a47f17922038b9da3d320cbed84ebb7688b
Currently translated at 99.5% (461 of 463 strings)
Translated using Weblate (Basque)
Currently translated at 99.3% (460 of 463 strings)
Co-authored-by: Alexander Gabilondo <alexgabi@openmailbox.org>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/eu/
Translation: Collabora Online/Help
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ic84fed0a093017e8eb3d9b8669ea4c772d3d10bb
Remove rather bogus timings per-tile; instead in future we should
track how long a tile has been invalid for I suspect, which we
can do more helpfully.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I790ad324b2dba2bc253e4c37c42ddb487666e455
Popup overlay performance is far from great, and they can leak too.
Change-Id: Id84391d702e20d067a98349fa96e7a495f02752c
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
No need to dump entire delta / keyframe content as hex.
Change-Id: I2e3e1bed693a8d33f1cc1f49ddf9f082b5d458b5
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Grid is all done on the client side by default now anyway, so
no need to have this anymore.
Change-Id: I92966cbd2953a404575cb71575e3e782acccd694
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Calling a PUT before a GET would cause a SEGV around managing the
internal list of files.
Re-factor to ensure we always have a valid LocalFileInfo to
work with, and simplify and cleanup code-paths.
Change-Id: I2b206bb8bdebc3c44cd55c61048da9b0dc30dbd5
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
top-left rectangle should give a state of the tile:
green - up-to-date
amber - present but stale
red - not present.
Next bar-chart shows the number of deltas applied.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I4968a0b23bf34b888eb1de0a960f33d7bc2e8076
Take all canvas tile rendering through the same function.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I68f1a53d01b1dff9ed9f5d62e4538171e1cfafc1
We now have CSections.Debug.TilePixelGrid.name to debug mis-aligned
CSS that doesn't pixel align our canvas.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I9f087cae60b757a67eae5dd6f464c16f1f66f20b
Otherwise tile-cache invalidation fails in impress as we compare.
Change-Id: Ifcf4acbeebe0f384c4fe0de337402c93cb0337f9
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
also re-work parseInvalidateMsg to not use std::pair<> returns.
Change-Id: I724783b7050a1ee251dfbe9b2f1e0ea02e7d45f2
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
A zero size delta means we're effectively up-to-date for this new
wireId.
Change-Id: I96abdf00648f7c2f833ffd56bd43980265b8d490
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Suppressing needToSaveToDisk silently when we cannot
save, because there is no Kit f.e., is unhelpful.
Now we have these two states separated out and
we log appropriate information in each case.
Change-Id: If38798578a7b88600e3f07c88e0bcbf833ae53f0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Seems a useful thing to capture the internal
state when a test fails, as it might help
understand what was going on.
Change-Id: I591a88662ab86ab4dc7f39dafcc4d7d279a4d9c4
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We test if mounting is possible by mounting
a test directory. This can leak in crashes
and failed tests, therefore it needs to be
cleaned up too.
Change-Id: I2638cc0863f3f5575f697bece9801d42cd321ed1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
unlike TilesSection::oscCtxs which is
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Iaad8dd61cd0e4432abcc50ca3ca71cdcb96a66db
The domain resolution problem from jails was properly solved by
bc8da0cb33
This hack is not necessary in docker.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I59664b895d187b2a8930a34b096305e0b7c384e3
* Focus back to document when escape key pressed on any element in Notebookbar
* Exception: When drop down is already open then focus back to element.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I4b34ae795465ecc402c5228478b7797298acc5a7
Breaking the chain may be useful in this case, in order to benefit from timeout.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I4242df23698b2019028cb4e8a3c6206499b80083
it shouldn't happen, but return early if it does
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I1733d346ff370827fd882caacebca111f790bbe1
This fixes bug when we opened 2 sessions and
- user A created comment draft but didn't save it yet
- user B then created comment and saved it
Result: comment of user A dissapeared and it wasn't possible
to insert new comment
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Idf1be61dca5e0aabdd885b7bd36a18a4a60507e9
problem:
resolves: #5995
it was just annoying for user when he goes to some other tab or clicks somewhere,
and the comment is saved automatically while they may want to still edit
also this solved another problem where in multiple users case,
if another user switches tab comments were saved even if user was editing it
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Iee32f21803d6a0dbc164bbf9a9bee803228aad7a
Without this commit screenreader will spit some non identified image
blurb
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Idf2cbede00127027e7a1162fc8e182728055936e
Before this commit id was being used directly making:
- Always an English string no matter the language
- Sometimes that alt text was picking digits coming from the
id. Example: Save1
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If4b4ee550b2d787b30557915015e173859d657a1
So user understands the component is empty.
We cannot add disabled attribute here because we have some cases such
as pivot table where the initial state is empty.
Note:
Ideally we would distinguish from static and dynamic
treeview (static=read only list VS dynamic=list you can remove and add
items). Only after this distinction we can properly add disabled
attribute to the static one
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ide4fb7589b5be611975de4a704b458bb626be0e0
When switching tabs, the client calls _handleSheetGeometryDataMsg which
seems to replay various messages received earlier. And one of those
replays a "graphicselection" attempt, but the new tab doesn't have a
graphic to select and so things go downhill from there.
To reproduce have a shape in one tab, select it, switch to another
tab and without this we get: 'failure error while parsing ExportAs command'
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I735509b14872dc6c74d7092db0083217954ad988
but they don't go through the delta mechanism, so move the assert
to the delta path, the other path is ok wrt gt 256x256
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I2ba4d8affb7645349540f3a5de31d1802f04c53d
Better to reorder these so we have higher probably to meet user's
expectations and fix the priority in which the elements are placed
- Move "Columns" (.uno:FormatColumns) to a higher priority place
- Demote "Title page" (.uno:TitlePageDialog) to a toolitem: This
Button is already present in the insert tab and so we don't need to
have it as a bigtoolitem here
- Move Hyphenate and LineNumbering to be right after breaks
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I6cba0ad920e9ee9ec836f9e06e201f0ff9264f84
so if core is compiled with a cairo using rgba the pixels can
be sent without need to reorder in server or client
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Iaf0410f1eaa605b9ce2716625f6c968bca523ccb
And tile::needsFetch on that result will always return true given the
default of invalidFrom of 0 and the comparison of
return this.invalidFrom >= this.wireId || ...
so the tile return from the cache is unusable.
It is typical for a request not to have a wireId, if we don't use the
cache then doRender will send a timecombine result with wireIds set. But
if we use the cache here we send a response using the wireId of the
request.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I586406af86b0f503dfc204e20120cc8acebf5b8e
Better to use Download -> 'PDF Document (.pdf) as... both for compact
and tabbed view
it's:
- Less scary
- More meaningful (you can download the pdf as hybrid document etc
- It also signifies that the action of pressing the button is just one
step for more options
Exception:
For when the group_download_as is false (by default is true). In this
case and since we don't allow '...' in button labels on tabbed view
better to fallback to '- Expert'
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ifda092ae3d685d7de3e5f065659733c5af2e2d41
refs commit 2572f011da
Added functionality:
- for draw, calc and impress with "download
group" toolbar buttom
- for all the applications with single
download toolbar buttons
- for all the applications in compact
mode (menu)
This is a port from 22.05 + with conflicts solved and the removal of
legacy hasSigning and related
Change-Id: Ibab9d831f1da07cbf38db29a26eeb5b712c4842c
Signed-off-by: luigiiucci <luigi.iucci@collabora.com>
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
When a user selects a different language for the document using
the More... dialog, the system does not apply the selection.
This patch allows the system to send the LanguageStatus command even
when the jsdialog is opened.
refs: #6808
Signed-off-by: Federico Rispo <federico.rispo@zextras.com>
Change-Id: I7a1a39b31db59f1bc5f980d63f3040ffa9b311e5
If COOL is running in debug mode ther is a
check that incoming messages are UTF-8.
We skip this tests if the message refers
to an image pasted.
Signed-off-by: luigiiucci <luigi.iucci@collabora.com>
Change-Id: I4f7e4a647deb22ec2a032d4d6347d910184c0701
We want to keep pre-loaded, and invalidated tiles around so that
we have something to render in lots of cases, particularly for
other parts, and slides. However - we need to know that it is
invalid so we can on-demand fetch something better.
It is very important that this invalid state doesn't race with
tile arrivals ie. in a banal way:
invalidate, req, invalidate, req, tile, invalidate, req, tile
it is unclear whether the latest tile is still invalid; similarly,
if we request(req) a tile and there is no change to it we get no
response.
To disambiguate this, use the monotonic wid to check we are in-sync.
Re-factor:
setup debug tile layer more pro-active.y
rename HasContent to NeedsFetch to be more explicit.
Remove:
previous _invalidCount that was perhaps a similar idea.
previous .loaded concept.
previous _pruneTiles concept - now it seems we can be
confident in cached tiles from other slides and sheets.
Change-Id: Ibc6d3b6050e756ace91a9bd53d3e4efe12b023cf
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
If we just got a new tile from coolwsd - it must be for a reason,
even if it is a pre-fetched tile, lets keep it around if we can
in preference to less recently rendered tiles.
Change-Id: I87eaba7ccca0d6cf22777043e047dd2874da5bca
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
It appears that tile.active has been un-conditionally true for a
good while, and that the tile.retain handling for zoom levels has
not been used for a while.
New tile garbage-collection should give us scope to keep and/or
pre-load tiles for zooming more helpfully if necessary.
Change-Id: I4d493a5eea34bf9dfd84744696303d0ae37bf883
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Before this the read-only label was being added to the status bar even
if the user has writing access but is currently in that transient
read-only mode state (pencil icon is visible)
Don't show read-only label for those cases. We already have the pencil
icon/btn that signifies that.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I5295564244977388034c7a7930840cb45dfdd629
entries are a tree structure so we need to iterate
through it using a special function
this fixes eg. date filtering in autofilter
where checkboxes didn't work
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I8a263264b2338d8955e0611f267f382768f1153c
make every character separate node to make this possible
also take not selection but node based on event's point
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I561a57e8d6284d8cbb567494dfd51c3470286af6
It converts textarea into contenteditable div.
Input is handled by TextInput.js used for document
and already in the past for formulabar. Replaces
usage of keyevents which are not triggered with
eg. Japanese.
Fixes also #6737
Fixes on mobile #6767 requires: https://gerrit.libreoffice.org/c/core/+/153717
New widget consists of text layer with visible content
and cursor layer with selections and cursor. When clicked
it focuses TextInput.js field for typing.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ieb7cf148a5aba80ab790e0b53c3a5ba27f166b73
Insert tab is already quite full better to remove insert bookmark and
reference as they already exist in the References tab
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I33c9876fa6fd258d9fec9db2abbb6d74f04fa4f1
Better to reorder these so we have higher probably to meet user's
expectations and fix the priority in which the elements are placed
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I9ae3bcd087f82e2cfa02da780638424f37a3589c
Fortunately, we have no need for any locals
in this case.
Change-Id: I954953bb2a8c79662152ad4cc2fb5422bc2b0baa
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Previously, we didn't expect such exceptions,
but increasingly this can happen, as we have
more and more async processing. The main
issue with not catching exceptions is that
we do not properly discard read and
parsed data from the socket. This is a
major issue, of course.
Change-Id: I4490baed7069cd55d103301c1d3be31d9b2d9b2c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Added collapse event sending to to core
and handle collapsed information received from core
the core part is here:
https://gerrit.libreoffice.org/c/core/+/153771
This patch allow user to have separate view of navigator, other users
will not expand/collapse our navigator.
Our own Expanded/Collapsed status of navigator branches will be
remembered even if we turn off/on navigator.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: Ib0c1beb3ba05932e6a36c2d95a72f3d1d61fd55c
Improved _handleKeyEvent for ArrowDown and ArrowUp, to jump
not only one line blindly, but to seek the first entry that is not
hidden, or else focus would stuck on collapsed tree branches.
(Because if a tree branch is collapsed, then its child entries,
that are the following entries, are hidden, so we should skip them)
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: Ic7a662964976263f40e18c8a41fe4e9e72f85ea3
Omitting this space leads to the error "test: too many arguments"
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Id8a83d77adfb484dcc949a10b4b25f6ad81130f8
removed in:
commit d859da11b0
Author: Caolán McNamara <caolan.mcnamara@collabora.com>
Date: Wed Jun 28 11:12:28 2023 +0100
rawDelta may not be sufficiently aligned for Uint32Array
because it would failed with nonaligned data from the delta
case.
Those tend to be very short, so for that case copy into a suitable
aligned buffer and the lengthy keyframe case which is suitable
aligned already can get the win.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I8acfcb18c69380c55128c07f1749eb301c1145a1
Currently translated at 100.0% (463 of 463 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (503 of 503 strings)
Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/sv/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/sv/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I611fb02d993a87cdedcdda4693903f09f805512d
The browser will block the cookie if it is sent
over an insecure connection
"This attempt to set a cookie via a set-cookie header was
blocked because it had the "Secure" attribute but was not
received over a secure connection."
Change-Id: I36faac0d9d3a73eed463c2580e5405d61a3a18f5
Signed-off-by: Henry Castro <hcastro@collabora.com>
The parent class will overwrite the popup vex dialog,
misleading error information.
Change-Id: I29d3d5fe0747903a58b56ae6c70e2e226715cdf4
Signed-off-by: Henry Castro <hcastro@collabora.com>
- controller used to send two messages first to save then
once saving is done migrate the document
- now controller only sends one message, COOL handles
unsaved document
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Id4afe1f9a04ef99005d7f0dbd6246826ba82442b
- also send 'App_LoadingStatus' postMessage with 'Loading_Progress'
Status to notify integrator
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ie754955c53d4d361d8dfaf083f7734382954d3f9
help coverity see that this is not true
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie2b72e7c0bcc649509310edc5498ec7adc7ebe72
expectTextForClipboard(expectedText) never fails for any passed
expectedText string
The value returned by the function passed to `then` cypress construct
must not be regarded as an implicit assertion.
I don't see anymore the '\n TEXT" case. It seems that comparing for
equality against the selected plain content is enough.
Fixed some cypress test that was failing after modifying
expectTextForClipboard.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I64ce31fa2127efcc70bbc3da3ac45fe456e66803
Now you can use CYPRESS_A11Y for enable/disable accessibility state on
testing.
Moreover you can use the taga11yenabled tag for tests that should be
run only when accessibility is enabled, and the taga11ydisabled tag
for test that should be run only when accessibility is disabled
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I4c44e78e5394477b64cc17ac6b815d9d70b059f5
Used for translators leader-board in the forum
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I04a557c3beaa109b0ab010ca32ec749b585d07cc
It used to be that scrolling in dark mode would show a white color while
the tiles were loading - now shows the document background color.
Signed-off-by: Paris Oplopoios <paris.oplopoios@collabora.com>
Change-Id: Id4c3881e728ae18496bf276e8c565a7abc1de7b5
PDF export was avaliable only with a modal "pdf options" window.
It seems a little complicated for some users who'd like to
simply press the button and receive pdf.
Added a new menu item to download pdf directly.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Signed-off-by: luigiiucci <luigi.iucci@collabora.com>
Change-Id: Id824179adeac3b516e58c85a9e2d01838f81c892
The new label added in a13f33b777 might
be a bit confusing and not necessary if the edit button (pencil) is
already present.
Better to:
* Have only the edit button (that should already be enough to signify
that the user is currently in a read-only transient mode)
* Add Read-only label for the cases were the user is opening a
read-only file (without permission to edit and thus the edit button is
absent)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I1fc5ca821bfd9feb75f411d2c3260a43d54e16cd
a) The "RowHeader" Header._updateCanvas listens to "move" and redraws everything via CanvasSectionContainer.drawSections
b) the "ColHeader" Header._updateCanvas does the same
c) scrolling then causes a "viewrowcolumnheaders" to be emitted from _updateHeadersGridLines and CanvasTileLayer listens for that too and again redraws everything
pause/resume around scrolling
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ic2bc28df18a633544d26607d3024bdb4dc321ce2
The unit test fails by 1 pixel offset, add some tolerance
"'assert expected [ <tspan.TextPosition>, 1 more... ] to have attribute y with the value '7822', but the value was '7823'""
.
Change-Id: Ieb36eedf1a17aadd3ba4872e9c4f94a3b18d0a73
Signed-off-by: Henry Castro <hcastro@collabora.com>
The failing unit test it is due to a duplicate file
that was modified with new properties.
Change-Id: I02824cfeaf8c496e84dc4e285975e95e79edb9df
Signed-off-by: Henry Castro <hcastro@collabora.com>
The element '#copy-paste-container' according to the documentation
it is only to prevent flickering, so check only if has children.
Change-Id: I11ecdf156c6fee8657e5cd42c2c7daf9f206410b
Signed-off-by: Henry Castro <hcastro@collabora.com>
When text is unselected by clicking somewhere, selected text innside
the editable area was unselected, selected again, unselected again.
That was causing the screen reader to report such a nonsense sequence.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Ib9d6628f7ac30fe2cd40ee7823ac67eb6471d1f2
when we open Writer -> Format -> Footnote field: Thickness
shows an alert about incorrect value. It's caused because
step is set to 1 but value is 0.5 as core uses step only for
increase/decrease but not for valudation. Fix this annoying
error by allowing to use 0.1 step.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I141194ebcd1f100ca9d3e7aeae086ddac2980da6
* reuse string from LibreOffice (and make it translatable)
* use an icon instead of button text, like in LibreOffice
* small amendments to text copied to clipboard
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ic16d786fe467c1f8ff718b1f46364541bba8e6ab
in which case it fails, just use the Uint8ClampedArray view
to look back at previous input pixel after all.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I1ee5d7480bf9a11145ca6514ef7efb7882c183cb
use a Uint32Array view when we want to look back at, or copy, a whole
pixel
and seems to be then marginally better to align the input/output views
to be able to use the same index into arrays
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Id3560cd1f40b5235d0115f82479b9091fcf798ad
github_android_online_co-23.05/net/HttpRequest.hpp:1391:63: error: no matching function for call to 'min'
<< Util::dumpHex(std::string(data.data(), std::min(data.size(), 256UL))));
^~~~~~~~
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I5b81096c696565b9e4eb4f3ca39c16bc1e5b9182
We now warn when we fail to use mknod
to create the random devices and have
stricter requirements to mounting
character-devices. Specifically,
we explicitly only allow mounting
the random devices.
Change-Id: Ib0dc300dedc40942ea52426af2b267f6a81fbeb8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Before this 8a0c8c44a7 was not being
applied furthermore better to specifically set this to only affect
labels within dialog content (since jsdialog class is also in many
other places such as sidebar and widgets)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic1cb825d6c70858a4c49123243866eaf0a6a8e50
when user hide or show multiple selected slide,
slides were actually hidden or shown but previews did not reflect that,
only first selected preview was marked as performed action
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ie0c2eea8442feb0a4340551a63d8d39932adad3c
Show New Slide and Paste (if clipboard is not empty) on context menu
when the user cliked on the empty parts of the slides pane.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I3d009499cc4400612f1246c28ce5478b80469428
Avoid linting problems
- Use tabs as indentations
- use single quotes
All per browser/.eslintrc and browser/.stylelintrc.json
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I1bbd425b7aaf39bca3f8d18da5092b7e27e41624
Otherwise it could grow without bound; now limited to 100 entries,
each of <128 characters.
Change-Id: I6a1b96a8cb6a67f991c3870f5b724989f65e0e74
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
tile = this._tiles[key];
if (!tile)
tile = this.createTile(coords, key);
^^^^
The value assigned to tile here is unused.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Iaabaa6417bcbf385ff2bde139663f8bd2e90db49
Instead of spending time re-compressing canvases as pngs and
base64'ing these into URLs, lets just keep the nice, pre-compressed
zstd keyframe around and its associated deltas, in case we need them.
Move to a simple LRU time for cache eviction of all types: sorting
_tiles by last render time. Collect garbage regularly while working.
Enforce canvas count, compressed arrays and number of tiles limits
under a high watermark. We should have enough canvases around to
keep rendering snappy, while not jeopardising our ability to allocate
larger document canvases to render into.
Re-create canvases if/as/when we need to render them from our
cached compressed versions.
Re-factor and simplify createTile, pass section into foreachTileInArea.
Includes parts of:
Partial fix for issue #5876 discard excess canvas contexts
WKWebView has a hardcoded memory limit for all canvas contexts
so if canvas.getContext('2d') returns null, convert the canvas
of other tiles to an image until canvas.getContext('2d') succeeds.
Thanks to: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I5117b0986aa46d2fffab6cd66d990de39dfcecea
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
We no longer need to track their loaded state, loading errors etc.
Change-Id: Icfa82807a800fc7a7406c130de22eb600324f61d
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
This stopped working well a long time ago, and is already disabled
on the coolwsd side, so dung out the rest of the code & docs on this.
Change-Id: I2e0b73fe9780e16c3cc74ae3a38ae6b04434717a
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
../kit/Delta.hpp:96:23: runtime error: index 4 out of bounds for type 'const uint64_t[4]' (aka 'const unsigned long[4]')
#0 0x558e8e0f800b in DeltaGenerator::DeltaBitmapRow::PixIterator::next() libreoffice/online-san/test/../kit/Delta.hpp:96:23
#1 0x558e8e0b8304 in DeltaTests::testRleComplex() libreoffice/online-san/test/DeltaTests.cpp:317:16
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I01da1e99b5d224411344659dce8bd2f29e7d74b0
Fixes#6650
When opened empty hello-world.odt document and
then in dialog Format->Paragraph switched tabs
and then returned to "Indents & spacing" - some
fields were marked as invalid.
This was caused by agressive validation done by the browser.
Let's adjust step to min and max value also to avoid these
errors.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ie7784fdd85cda725a816842a7915efffcab22d0b
array_null: Comparing an array to null is not useful: "false",
since the test will always evaluate as true.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ib34694022484e9041827980c0b67fe614446f4b9
Store a bitmap of whether a pixel is identical to the last
pixel in a set of four 64bit members. These double as a
simple CRC. Store the allocated row size too, and use the
stack as a temporary scratch-space to do the building in.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Un-necessary allocation overhead for now, but more follows.
Change-Id: I1012678daf021cf63d8fc6e52d25d2dec703c4fb
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
this should presumably be checking caps_none not caps and is a cnp
error
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I46f381fbec31b3e9c311f1becf0c536c192788fd
This way they:
- Align to checkbox
- And have additional padding in places such as Format > Paragraph
Line spacing 's dropdown is glued to "of" label
This also fixes one task from https://github.com/CollaboraOnline/online/issues/6647
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I53e66602dffbc96db39449cbda53d433a9dd12d8
We have http::Response specifically for
this kind of thing.
Change-Id: I4cc24378741bb1da76967e9c01a33060d11cdc4b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
In some cases we may not have permission to create devices.
This happen on nodev systems and some containers. In
those cases, we gracefully fallback to bind-mounting.
Ideally, we would like to reduce the number of bind-mount
cases we do per document, which i why mknod is preferred.
Cleaning up works without modification because the
random devices are mounted in /tmp (in the chroot),
which itself is bind-mounted. So removing it is
sufficient.
Change-Id: If9a4f0a511273952ead95d6c6855ca2becaf757f
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
In some cases jail cleaning up may fail.
In such a case, we still want to be able
to build a fresh set of binaries, which
are used to run coolwsd --cleanup.
Since cleaning up the jails and the
systemplate are not strictly required
to building, we now only emmit a warning
and move on.
Change-Id: I4ebf7772cf767b579810247c427d86efa5a6d3ad
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Added condition for focus on textarea so ot will handle the keyboard in mobile view to stop flicker.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I8cb6211a3605503f4144a3c48e059960cf461617
addmb-menu corresponding to add to dictionary seems to be a dropdown
that is not enabled in online. And we do hide the main component by
making use of hidden class. Nevertheless, and even though that is
never visible, we keep getting the file not found in the console.
- better to add an generic alias for that file so to avoid that error
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic9ad2d9cb07fa1f496166d3653bbf81de3f310d0
Remove un-necessary gating of wakeup() on stop un-related to
callbacks or new sockets.
This reverts commit 25f2581a30.
Change-Id: I9f9f30fed34c973b86206677168071abb81afa6f
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
added slide hide/show option in presentation bar
rearranged icons to align them with core UI
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ic4b121ab5d9ab21d8f48e68bb07e51a31442586e
We throttle the "move" event, but in moveEnd we always call
a _move anyway, so if there are throttled moves still
pending by the time moveEnd is called then there is no point
processing them after _moveEnd because we are up to date
already when they arrive and to do would just duplicate tile
requests
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I15c6fe5f0f1b6171a299a4519138912000dd9b68
rational: building for release takes a lot of time and we
neither package, nor run (most of) these unit tests when
we make packages.
CI runs all of these tests before merging PRs, so risk is low,
if we do not run the few build-time unit tests when we package.
make -j12
--enable-tests (default): 3m 18s
--disable-test: 1m 9s
3x faster...
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I4edd98af55748432e30c65c4c910e72c0221272a
Only Chrome browser validate number inputs if it is
defined the attribute <input type="number">.
Unfortunately, it is not possible to get the cursor p
osition to validate too.
Change-Id: I73ef692498caa348a5b8d376cbfcfca0c146816b
Signed-off-by: Henry Castro <hcastro@collabora.com>
"The formatToParts method enables locale-aware formatting
of strings produced by NumberFormat"
Change-Id: I819b8c9de98ad89926216ce14b992c2ceda5deef
Signed-off-by: Henry Castro <hcastro@collabora.com>
New tests:
- Check content
- Moving between entries
- Add entries
- Typing <backspace> at entry beginning
- Typing <delete> at entry end
- Selecting at entry beginning
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Ib831bb9f44f9fe3828e8f77fcdaf7f12ef901644
When there is an empty selection at the beginning of a list entry and
a <backspace> is typed, the <backspace> doesn't delete only the empty
selection as it occurs in a normal paragraph.
So we need to avoid to send 2 backspaces.
Since both a <backspace> and a <delete> removes the empty selection we
always send a <delete> followed by a <backspace> when a <backspace> is
typed and we need to remove an empty selection.
This solution works both for normal paragraph and for list entries.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Idae144b65ed04ac28c602ee2155d337369c534fe
Helper functions has been moved to external file:
contenteditable_helper.js
Tests have been subdiveded in groups.
Spec file renamed from editing_spec to editable_area_spec
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Ifdb18b0de4851a2fc927b3a8fb3b1472165f2b7f
UnitBase::isUnitTesting() and UnitWSD::isUnitTesting() to avoid
calling methods that crash on mobile.
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: Ie6bc2d238ac9e475b02ceef5809c55acc129dd52
Still needed to add a bunch of #if !MOBILAPP to disable all of the
Online server's unit testing classes so that the iOS app won't crash
when opening a document.
TODO: the iOS app will not accept text input at all. Is some code
unexpectedly consuming message data sent over the mobile fake socket?
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: Ie874ee8e452188a7b4cdf6d5f87708e5ed9b0235
When accessibility is enabled in coolwsd.xml, overrides setting in
<user-interface> section by force to use the notebookbar UI.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I98f4b288439b21110214ca2a67df639b397184c9
This patch fix a regression started from
17b50868ea
"impress: introduce slide hiding/showing in presentation"
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I55263b07088d16fe07171e004b5d505eb3b70500
probably went astray with:
commit 52f2600cf9
Date: Wed Feb 16 17:22:18 2022 -0500
wsd: test: embue all tests with a name and unify logs
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Idf4f9bfce7ef188ac15a7cf62baadc3dd5b59dcd
Given that all messages that can have "ver=" in them will also have
"nviewid=", "oldwid=" and "wid=" then the "id=" search is always
successful and this loop doesn't achieve anything. Disable this for now
and later either drop canceltiles or repair it to do something
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I085bd18f05561df3a542eb14ceb4744b228f4621
The FireFox browser corrupts the first IME input character
while it is IME composing and changing cursor position.
Change-Id: I96a6ddd9f5c74b83566051b447b46e45745fa2be
Signed-off-by: Henry Castro <hcastro@collabora.com>
Encode the "JumpToMark" bookmark parameter to jump
sheet name with white spaces.
Change-Id: I3943751379bd00bbd4036e137256df1338d26f0d
Signed-off-by: Henry Castro <hcastro@collabora.com>
this width was set but never used w2ui img rules have been overriding it
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I86a7d8b16313204fcacdabcad8f604ca5c1dce40
Before, we needed this white background.
Now, we don't.
- After HTML and dialog rework the background is inherit from the
wui overlay and the images are set directly to the td elements using
bg img
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic6b802f4fd5bac66e975800b929c53ca571158dd
Better to make it more generic so it not only includes:
Busypopup: c26bed9
About dialog: bed76f1
but also any other similar dialog (warning dialogs, e.g.: copy/paste etc)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If56e36d5429472f255d94bfaa087a32309903257
Before, we needed this white background.
Now, we don't.
- After HTML and dialog rework the background is inherit from the
wui overlay and the images are set directly to the td elements using
bg img
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I30826e17c502b0369fd337699d93f648d41846aa
Add color property for annotation-textarea to get correct font color in comment box.
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I74d5e83641982acc1b0b328c707c09d06d68c56d
Fixes#6597
error:
Clipboard.js:305 Uncaught TypeError: this.isPasteSpecialDialogOpen is not a function
at Clipboard.js:305:16
at request.onload (Clipboard.js:225:6)
Regression from e116a4d3e8
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I8c2717b627fead7a3ad3bdd870845c86c586eed4
Since we have disable the functionality until it works as expected
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I0a99680d79ffb44a653c32edb25aafded35c7712
Otherwise they (their contents) will not be scrollable
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Idf121b6164dbb43a473e07e2ca70962bedb10ebb
- removed old/obsolete dockerfiles
- updated README
- added back the starter scripts to Dockerfile, in order not to break
existing API, i.e. environment variables for aliasgroups, admin, etc.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I8ed88afd9db3bc53f9b5529f20764b538b302596
This new DebianSlim dockerfile eliminates the use of installer script
which was an anti-pattern.
The inotifywait hook for watching changing coolwsd.xml was removed. Was it
useful? I don't know. Please complain, if you miss it.
DebianSlim is still not "distroless". Probably first we should solve the
name resoltion problem in jails, in order to eliminate the need of copying
/etc/hosts and /etc/resolv.conf to systemplate at startup.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I26948eb21a1bc3092b93d02d93e03269e9a70198
Currently translated at 100.0% (463 of 463 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (499 of 499 strings)
Co-authored-by: Stanislav Horáček <stanislav.horacek@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/cs/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/cs/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I3a1579afb171ee4b532b6d05ff5cedd449b64435
Add a TR with the text:
"Headings and objects that you add to the document will appear here."
if the navigator is empty.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: Iff944df90b921e6f6415d2a3bee462b86e5a5eb4
This was forgotten in commit 21966e1a9c
(Fix copy command going out of bounds during delta creation,
2023-05-31).
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I91ce26f46cc6cb7a2dc3ab0665dc9aeea8a5c00f
- use encodeUri instead of encodeURIComponent because
it preserves those characters that are part of the URI
syntax
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ibde1b9ad40424b9bd2ce065cddfe2e83b23271c5
Do not re-use light mode values.
Increase color contrast
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I514d4be5468dd3df50ab5256b64d0a22e659ad97
When a key was typed the focus was grabbed from the clipboard area
because of caret/text selection events received from core.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I60b945d7d4742faf4a946c836628bdf70b266eb7
- Categories (listview with icon) get highlight but not indicator
- So it's understandable that they can be dragged
- Categories: change cursor so user understands that they can be grabbed
- All other treeview (even exapandable) get highlight and indicator
- To help user's orientation
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I8c275c81503787c60c4527a3cee63be8323686ef
So it can be targeted in the styles
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: I167ed996f1625e44674e53e2c10daf78a4546b5d
This is a follow up on the revert f4f95b2 since the scroll logic depends on the
absolute position
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I5659701c2236dc89f764f45008e6e92c47a3f101
A new section about accessibility has been appended to coolwsd.xml
config file
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I086abdf73646639283eb655ae60f200fb64e495a
- Tunneled dialog was missing title bar color (was inheriting from
jquery ui library defaults)
- Also use the main background (lighter than bg-darker) for JSDialog containers
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If6db5ee2edad88b2785096eb746f291a07b46d70
Better to move this elsewhere otherwise we get huge save icon
This reverts commit 247bc9192d.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
because data/delta-graphic.png and data/delta-graphic2.png are missing
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie850d9ae76946e891d2928de80c5ded4e970f4cf
allow to jump to the last element in dialog by using
SHIFT + TAB in tabbed diaogs
also close button shoudn't be in the cycle
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Idfc75aa35a04add8e5673c45a9e94b670e877706
combobox has inner < select > html element which should
be focused instead of main container
this can be tested in Insert -> Page Number in Writer
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5a336ae9e0fe86a11732b92276f4475724f2c21a
I have noticed that sometimes the toggle doesn't get assigned with
selected css class. We could just rely on this line and avoid add and
removing css class to the DOM every time the mode changes
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I7c19f626d60c761a1ebe2509e7ab7aa8031403ad
added context menu entries which works out of the box
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ic0b598a575c4f0fb337ae79bc51cac2330d1115f
problem:
previously ids were assigned based on the position,
in many cases this id can be repeated on slide insertion which was problematic
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: If4dd5409518f91ecda58aa7de1e9bae293e83436
default button should be inside form so we execute
correct action on ENTER
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2b9b489e6589f6b16f967a7e77c9d6389d322ff2
now that about dialog is not a vex it is inheriting width from
generic .jsdialog-window.modalpopup. Overwrite that and make it wider.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I830f57cc9fda9bea8e377d53e72af92c4804cf8d
About dialog is already inheriting those from
.jsdialog-window.modalpopup
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I3f49284f3d818eccc62b1f49cc330267d1163319
And use the same values as .lokdialog_container.ui-dialog.ui-widget-content
This is a follow up from
- PR: https://github.com/CollaboraOnline/online/pull/6343
- Commit: a65de18694
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id2661cd4eec021305c6af6c26cfc184cc9968956
Without patch image sizes are 336px and seems cropped in sidebar.
We should use same width with sidebar width.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I617a4e79e15d1d49ca95aec8f5a20f95734160a2
- Get directly the particular css var that we want instead of on relying on a container
- This makes things easier to maintain in the future
- Use a new --color-canvas instead of relying on --color-main-background
- color-main-background is used in many other places which means
that if we want to have some particular UI brighter or darker it
would affect the canvas. Better to use a different/new css var for that
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I3d7d3ba188e96080d9f6f814a5c46f85ea378142
Insert -> Smart Link option works if only the integrator supports the
funcitonality. If not supported not need to show to user.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Iad6609ad6a90a57126b30288a9c089f9185d97f2
When creating a delta, the copy command could copy from rows that are
bigger than the height of the tile. This would go unnoticed on light
mode because the js side that applied the delta would apply these out of
bounds rows with a white color, but it is noticable in dark mode. Made
it so the copy command stops copying from out of bounds.
Signed-off-by: Paris Oplopoios <paris.oplopoios@collabora.com>
Change-Id: I4d05cb411958d0945933edb5c812de2dfd9c1abd
Added a debug option (triggerable using the about debug menu) that
allows you to dump tiles as they come in
Signed-off-by: Paris Oplopoios <paris.oplopoios@collabora.com>
Change-Id: If5939b816c1e3598e50c2db4971710524f855909
Currently translated at 99.3% (496 of 499 strings)
Translated using Weblate (German)
Currently translated at 98.1% (490 of 499 strings)
Co-authored-by: Ettore Atalan <atalanttore@googlemail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/de/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib1a4112c190f3650741962c827e4afa86c8e1726
Zeroing margin and padding otherwise we inherit px
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I1dedb755b3fb16ac2da6af95b4a0c4d5e5910715
- No element should have border
- Reset max-height otherwise it will inherit 150px
This is a follow up on:
navigator: hide panel title in sidebar 56ca9b6
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I908468f0cb9a494acd7785d76e1882c3a8673de3
Affected user flows:
- User opens read-only file
- Before this commit, there was no indication that the current mode
is read-only.
- User opens file
- Before this commit, the only indication about the current read
mode was the pencil Floating Action Button.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I7cc3982b0c0f827a96e144ee339d8f0e601bf03e
To change the behaviour: call app.setBackgroundColorMode(false);
^ This will take the variables sent from core side into account.
Otherwise they are ignored.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: Ib7321bf7c65ff9bcb1937957cea3a070b0eecd32
Before this, save icon's dot was being cropped due to height rule
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id7b16b3fcd05d169c1206b9b7c3dbe615f0e8141
Before this search input field was quite narrow
- Too narrow for some content
- Too discreet due to its width
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ifef703f6cf75d5807494d4bbf01db16dbddb9e16
fixes#6494
browsers are very strict with validating spinfields
use as step values like: 1, 0.1, 0.01 so all the numbers
with specified precision will be allowed
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic6d336b2448e82e02e8400ad62d4685a8d37d3a8
Currently translated at 20.0% (22 of 110 strings)
Translated using Weblate (Persian)
Currently translated at 1.8% (9 of 499 strings)
Translated using Weblate (Persian)
Currently translated at 15.4% (17 of 110 strings)
Co-authored-by: HM <goodlinuxuser@chmail.ir>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-app/fa/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/fa/
Translation: Collabora Online/Android app
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I06ca427ea45a5931dac5a4bbd40f58192fb1ea58
Currently translated at 100.0% (463 of 463 strings)
Translated using Weblate (Slovenian)
Currently translated at 100.0% (499 of 499 strings)
Co-authored-by: Martin Srebotnjak <miles@filmsi.net>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/sl/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/sl/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I45ecf0f26cd04e2d459fe96ee2d7b4ecaaa33969
result visible for example in sidebar in impress
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Idb11d288a91775f432592aec6458bf31dbecf778
We handle notification from core about currently focused paragraph:
content, caret position, text selection start/end.
Notifications are sent on any text changes, even when the text has
been modified in another view.
Moreover we can request such info to core at any time.
That allows AT software to read focused paragraph and selected text.
All that keeping editing still working.
A set of new cypress tests for checking clipboard content has been
developed.
failing cpp unit test:
- HTTPWSTest::testInactiveClient
'unexpected message' assertion was failing since an idle client can
receive an a11yfocuschanged message when the same paragraph has focus
in both view and the active view is editing the paragraph.
failing cypress tests:
desktop
- calc/autofilter_spec.js
- added more wait time before performing clickOnFirstCell
- impress/undo_redo_spec.js
- Repair Document was broken
- we need to select 'Hello world' in order to overwrite it
mobile
- impress/spellchecking_spec.js
- Apply suggestion
- better use selectTextOfShape instead of Ctrl-A
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I070d390543fa66fe786c4a0661fa09f891b9883e
Refactored TextInput implementation. A content editable <div> is used
in place of <textarea>.
<img> elements are used as pre/post spaces.
Minimal changes to FormulaBarJSDialog, since some code was
dependendent on
TextInput details.
Refactored some cypress helper funcions, too, since cypress tests
expected a <textarea> element.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I13fd7d5c6446dea054a5a9e88f22ed100a66b3fb
originally done with:
commit 067381f0b2
Date: Wed Dec 2 16:46:40 2020 +0300
Pre-fetching next or previous slide tiles
but didn't make its way into the rework of
commit a15597de9c
Date: Tue Mar 30 13:16:14 2021 +0300
Merge GridLayer+TileLayer+CanvasTileLayer
but I think this is broken since even earlier.
At this point the next/prev slide tiles are fetched, but dismissed
and not cached properly yet
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I3db2f5b228200e6cfb02c005bb8d2b2d659459c7
Fix#6423 not requesting a large enough range in pre-cache
request in pre-cache the same range that we end up requiring later.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I5d6632ce6dbf238578daa988136983097188ce1d
This reverts commit 8b28380f32.
and updates to work with contemporary code
i.e.
- var coords = new L.Point(i, j);
- coords.z = zoom;
- coords.part = part;
++ var coords = new L.TileCoordData(i * this._tileSize, j * this._tileSize, zoom, part, mode);
and use getPixelBoundsCore now instead of getPixelBounds to get the same
range that switching to another slide will give
- var pixelBounds = this._map.getPixelBounds(center, zoom);
+ var pixelBounds = this._map.getPixelBoundsCore(center, zoom);
and
add mode param that _sendTileCombineRequest now needs
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I32ad3c22deffc1ef4b4466545297c9ff8a0ed5ce
more
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I9f3b9a0a6169dcb78d143d68c1d07716c7365132
this fixes layout of 2 rows of button boxes,
example: manage names in Calc
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I7fbafa4ab3a234e8406e25167ca533195fee51ba
Fixes a race-condition due to re-loading
attempts when the second one fails (as
expected). Now we retry the loading
while unloading repeatedly until we
either succeed or hit the timeout.
Change-Id: Icf9d8e146bc2aad5bf71c7c521466bf567ddb05d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Shorter waits to break the polling
loop when the test finishes and we
need to terminate.
Change-Id: I79d9d89675d0a37f25a03b265b3ae636a90e57d5
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
To support parallel loading, we need to
start a test not when a DocBroker is created,
but before we send the first load requst.
This changes the test structure to rely
do that explicitly, rather than using the
onDocBrokerCreate callback.
Change-Id: Ie4fb1317961a75ad6730e27d600444e986296766
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
And re-enable a number of previously
disabled tests. They seem stable.
Change-Id: I6d263708edbf1ca0411500a6876e110be8acb326
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Make sure that the logging subsystem is
already initialized before starting
unit-tests.
Change-Id: I2ce3ffdb2d3b0094ae7ed496d7cacfc02af89c21
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Better to make all error messages related to storage consistent and
avoid mentioning admin or administrator and respective %storageserver
link
- In some situations %storageserver domain is not the right place
to redirect users (integrator might have another support system in
place, etc)
This is a follow up from
- PR: Do not assume who the user needs to contact for storage space
- Commit: 2ace217813
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id49e4b7f775c1ded10fb02648c7525c6e9becf20
if the tile has a Canvas as tile element then it never gets cached.
All was apparently well at:
commit c812edc7d3
Date: Mon Jun 7 12:31:26 2021 +0530
fix avoid putting empty tiles to cache
where the change to cache only if tile.el.src is non-null was added.
But by now tile.el can be (usually is) a canvas and generally doesn't
get cached here.
It seems to work fine to just cache the Canvas directly.
note: This cache guard itself flip-flopped a bit in:
commit 6db9771896
Date: Wed Jun 9 15:45:07 2021 +0300
CanvasTileLayer: Use el instead of el.src.
where changed as:
- if (!(this._tiles[key]._invalidCount > 0) && tile.el.src) {
+ if (!(this._tiles[key]._invalidCount > 0) && tile.el) {
but reverted in:
commit 115d20082d
Date: Tue Jul 6 15:59:08 2021 +0300
CanvasTileLayer: Correct the check for the tile source.
back to:
+ if (!(this._tiles[key]._invalidCount > 0) && tile.el.src) {
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I1760f94c0aebd10b75f936f23460f96159c736af
Changed to open PropertyDeck as it does in tabbed mode.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: I39c0efe7428d2ff3240f16578c154be820374517
Added navigator button to draw, just like in writer, calc, impress.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: Iab06ff192357d9cfb47d373f0cf0dfd181f3e052
Added Desktop tests for calc and impress.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: I80616cc9e8a9dd7160e9b33fa50047db83911590
Added Desktop, and Multiuser tests for writer.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: I1bbb32303c66eb499cb837289a51caafdf2055a8
Somehow escaping was disabled for this safe text we generate.
Change-Id: I47fbf72b9d47a80975ca1b926ff2d27c248fac12
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
we didn't check if zotero was already initialized what caused
reload of the notebookbar when any new user joined to
collaborative editing
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5a518d579ccb9e73007131ba64fb8c7972360155
identfieldbox and box3 use the same css class see #6392
Signed-off-by: andreas kainz <kainz.a@gmail.com>
Change-Id: I7a95fdd8ae3a9bfffbe676917cb412a99cb40818
This hard coded width is not needed and was imposing that width value
to #indentfieldbox even if there is other elements present resulting
in the whole container being bigger than the sidebar itself
This issue became more evident with
27fddae9c6 (even
though it's not related to the bug but rather exposed it even more)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I90e684b395b950e4cc25a96a9875d4702016411d
followup for:
commit 012b00d
linking-api: always response for thumbnail render requests #6229
in calc and impress we don't get cursor message when switching to
target (slide, range), so don't check if target was reached,
statechanged messages are good enough signal we are loaded already
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I63aa5aefeef153d4d6e2b483e1cdb7bf2c6268ac
Better to align everything to start so if the components differ in
width they will still be aligned (as opposed to be laid out in a staircase)
This is a follow up from 1bfbdf8072 coming with
the following PR https://github.com/CollaboraOnline/online/pull/6389
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic607567d30656cc122f9cbfd71bd3d910ebfe9bf
- Do not appear above color
- Re-use tooltip styles
This fixes https://github.com/CollaboraOnline/online/issues/6293
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Idf67c23b2263e5eeabc70a7128087333856aa465
It seems the following commit
be04111173
had a typo 0px should have been 1px
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ibf3b92964efd8a1a147abc853042fd70a406abaf
follow up for 25efeea0d8
missing const in modified function caused build error
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ic0f4ae39476e16a9a49904e06b44f26d2a5d4fe7
In tabbed view when we open help or keyboard shortcts dialog
"button" style of cool-help.html overrides the button.ui-tab.notebookbar.
So all buttons (even in notebook bar) uses dialog buttons'
text-decoration: underline ans pad padding:0
Here we make the dialog's button style to specific that dialogs.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Iacaab42efa527fc5c6ada21fd007e4a352912b60
Profiling suggests this is not needed, and we should get closer to
the normal code paths to measure.
Change-Id: I433a06812f17e642c9ad9e7f8be4c0505f5174e0
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Error: self signed certificate in certificate chain
at TLSSocket.onConnectSecure (node:_tls_wrap:1530:34)
at TLSSocket.emit (node:events:526:28)
at TLSSocket._finishInit (node:_tls_wrap:944:8)
at TLSWrap.ssl.onhandshakedone (node:_tls_wrap:725:12)
at TLSWrap.callbackTrampoline (node:internal/async_hooks:130:17)
Change-Id: I27462802a6b1cfaed683277d111a480ca474cd7e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Now StorageBase::getFileInfo() is strictly
used for reading.
Change-Id: I0d412e7ef6e502ae8b1864131b6f174e44343273
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This moves the logic to update the PostMessageOrigin
field in WOPIFileInfo to be done in the constructor.
And now getPostMessageOrigin() returns a const&.
Change-Id: I88936441edb58deb65d901db4baaf6311be3bdd1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Normally, we do a fuzzy-match for the keys
in JSON (presumably, there has been typos
and minor differences in the spelling of
keys in the past).
However, this can be wrong if there are
two rather similar keys. In that case,
we should always prefer the exact match.
Also, the exact match is faster, since
it's a map lookup (logarithmic) rather
than a linear search with Levenshtein
distance algorithm on each entry,
which is quadratic.
Change-Id: If88d13a305a0c67cc00c3f3f22c7dc472666a1ff
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The call duration is already logged elsewhere.
No need to pass it around and log again.
Change-Id: Icef50b9a8a48dcecc78a6b99c6311fc0d5b2a676
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This merges multiple implementations of
assertCorrectThread and simplifies its
usage.
Change-Id: I7be5dea62c6046fb0412d7f885fcbcc4b66e3fd9
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
test with eg. &lang=he
after position of a dialog was changed to absolute position we
had regression causing the dialogs to appear outside view in
RTL mode. this patch uses margin-inline-start instead of margin-left
what is more generic
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I3e70ced1b790d4af751f34d54c880135a3af21bb
This fixes regression from popups rework.
Run collabora online, try to open not existing document.
You should see error: "Well, this is embarrassing..."
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic3fc0dfd05e5ad16d11b07f4f7f3e36851483c1a
and move all navigator css rules into one place
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iaf00bbd25bf111c5817621f4a72ac95aeb307786
when we request target which doesn't exist or it is the first
character in the document, we receive only one cursor invalidation
in that case we didn't respond at all for the request because we
were waiting
this patch added fallback, so when we receve statechanged messages
we know we already loaded document so we don't need to wait more
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib25ab4f4d68809e3ef97ccb826ba44aeee2f71dc
This is the product name served by hosting/capabilities
endpoint. Also, it is used by update checker.
It can be defined --with-app-name build time, but if
we would like to configure it run-time (e.g. with the
brand package), then we need a config setting for it.
E.g. brand package could execute
coolconfig set product_name "foo bar"
in postinstall script, if necessary.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I8e72d3a3735e3a77c7aaac9a88b2c0fc6a957c0e
Previously the help root URL was defined in coolkitconfig.xcu,
but it was inconvenient to change. Now we have this setting in
coolwsd.xml, therefore it can be changed more easily. For
example a brand package can disable the Help buttons on
dialogs by executing the following command in postinstall
script:
coolconfig set help_url ""
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I6d0bdd71ca908df3d2dd20bd321aff9e93896f52
When we detect document change in storage, we have to
either prompt the user(s) to either reload from storage,
discarding their own changes, or force saving their
changes and clobber the version in storage.
However this implies that the loaded document was
modified. Because otherwise, we do reload the
document from storage, automatically.
This change improves the detection logic to take
into account not just the saved state of the
document, but also the upload state. That is,
if a previous modification was not uploaded yet,
then the user does have changes that they need to
consider to discard or save.
Change-Id: I5f03593bebc5b565fc19e78562896bcdcb6112e2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The +[NSString string...] selectors won't be released until
an enclosing autorelease pool is released. But since we use
ARC, we don't know where the compiler has inserted the
autorelease pool so JS messages may not be released until
after a very long time potentially causing an out of memory
crash. So, use the -[[NSString alloc] init...] selectors
instead.
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: Iff0be8ee5b322347e746dc030948b82d117c43a1
Also, don't set webView.configuration.userContentController to nil as it
generates a "nil not allowed" compiler warning.
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: Ibb49228a65f102fa6d97d4e5affafae8ad528c0d
This avoids an excessive number of reallocations. This is overkill
for non-binary messages, but most non-binary messages appear to be
under 1K bytes in length. In contrast, it appears that binary
messags routinely use at least 75% of the maximum possible length.
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: I522fe74bc355a78b6b561ec9475a1afb27cf54b2
Many .png tile messages are very large so avoid using
-[NSString stringByAppendingString:] calls to create the JavaScript
string.
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: I8163ef93da315122f938c9ed2b66b49a443f283f
The fix for issues #6103 and #6104 changes the name of these
icons so map the new names to the old names.
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: I96b2678534827ce94c11edfa00718eab2a6a9eb8
LANG values such as en_US.UTF-8 trigger an assert in the LibreOffice
code so replace all "_" characters with "-" characters.
Signed-off-by: Patrick Luby <plubius@neooffice.org>
Change-Id: Icba29a8e647eaf0887cc801d4b8763ffd821ffbf
The normal path is now streamlined and error handling
is at the end. We also now always set the disposition
to closed and fire onDisconnect() when disconnected
or hit an error.
Change-Id: I984ad71601b92b8042dc7984e7339f0804c8083b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This corrects the ending of renaming by
moving that logic only after we get the
async upload results (either success,
failure, or timeout).
It also cleans up a few cases, such as
not needing to special case renaming with
identical names. This ensures that
subsequent attempts are not ignored.
Change-Id: Ib7a432d8a3b6ef5448291763cd31cc844c997e7e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
In compact view we have insert current date and time actions but in
tabbed view we don't have them. To be equality we need to add in tabbed
view too.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I5498f47a8dc96a5403cdf17be52ef3a7ad66862c
The QuarantineMap is shared between DocBroker
instances, which makes it subject to concurrent
access and modification. As such, it must be
protected via a lock.
Change-Id: Id62587b33123748f848110a5427da3e296725de9
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Since we need both the PID of the kit process and
the document name, it's easier to construct the
quarantine instance only when we have downloaded
the document.
Change-Id: I8b537122c4b10ae6e822a82fa6a75456d0eaaaff
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use the timestamp in the quarantined
file, not the modified time on disk. Since
we have the timestamp, we should use it.
Change-Id: Iaf4a9cab2203da3e3842d7fe46b4578a031f0958
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
No need to encode/decode docKey,
since it is always encoded already.
Change-Id: Icd9c6d24ca57e9f0ffb06efc7052df175d5d383d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
config.h should only be included in .cpp files,
never in headers. The reason is to avoid having
it accidentally included, which would also
allow for it being effective only in subsequent
code, not those included earlier.
To avoid these problems, each .cpp includes
config.h at the top, so the configuration
directives would be effective throughout
the translation unit.
Change-Id: Idae87e5ee51abe454cc2a53d6f60dc07f64d0c35
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Utility classes/functions should not re-implement
any logic external to their function. The
path to the file to be quarantined is controlled
by other bits and QuarantineUtil is simply told
to quarantine the given file.
Change-Id: Iab351ccbf78953bb63f18c451321d34fe61f59b5
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Historically, isUpToDate was created and used
in jail setup. But since in other cases we
might also need to compare files, we break
it into two functions. A new member called
isIdenticalTo, which simply does the comparison
and returns the result, and isUpToDate, which
calls isIdenticalTo and logs the result, as
expected by the jail management.
Change-Id: I6581970ad3e97e3fc0728055e6b57647baedf968
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
There is no good reason to check the config
repeatedly, especially that once we initialize
we should have the state.
Also, we should be able to disable quarantining
when we hit an error during initialization.
(As an aside, reading the config is slow and
throws exceptions that are caught internally,
which makes debugging for exceptions frustrating
when we repeatedly read config entries.)
Change-Id: I44a7800df96a370ef4d4cc1d6bb171f60f1499a0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The clang linker doesn't need -pthread and
warns of unknown command-line option.
This detects clang and forgoes the -pthread
flag to the linker.
Change-Id: I658cd887c567a5beeeae0e6e1b6d596231894c1b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Use 'position: absolute' in jsdialog-window and jsdialog-container
so we don't stretch the dialog. It will use minimal needed size.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I7b38b9200e190cfc184bf4bfe8b7bd814c60d5a6
when html document has <form> and inside <button> with
id=style, instead of having map with properties in
style attribute, the form has reference to the button!
that caused not working dragging and updating the position
in writer format -> page style dialog
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic3e35c096f537e6f3cdd4bd7b1a06af1302e7c9e
this uses css grid to position all the tabs stacked
on each other at row 1 col 1. then when tab is hidden
we use 'visibility: hidden' instead of 'display: none'
so we hide content but leave white space needed for it.
this way we don't change dialog's size on tab switch when
tab has different size requirement, but we match dialog
to the size of biggest content
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I634e9f610c4e6dda4df38b85ee15cd58b3b18432
We'd like to build distro independent rpm packages.
Distro specific macros and other code were removed.
The empty environment file for systemd was removed, it can be
easily created by the user, if necessary.
The obsolete trigger for rebuilding the systemplate was removed,
because we no longer copy system libs to systemplate.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I0ac9be8f72a7089e38349abc1dff0d39b0410e44
Draw: We should use uno:InsertPage* commands instead of uno:InsertSlide same
like compact view. We should use "Page Count, Page Number" instead of
Slide count Slide Number as button text. "Slide" word should be used for
only impress.
Impress: We should use InsertPage* commands instead of InsertSlide* same
like compact view.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I91989d4d61b65bd3b719753300a14a5177ca9e95
Remove notebookbar tag and use switch UI functionality.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I49cfc7340b7ef07d06b0b7c37d24d88127c03735
can be tested with calc -> insert -> pivot table -> ok
or calc -> insert -> define range
- main expander content should have visible state so we show it on
toggle
- use expanded state to detect if we should be expanded
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5ad2f8d22fa0746ab5324cbf1f211b6ea3d69886
We use our own status codes, which
are type-safe and use streaming
operators to serialize and log.
Change-Id: I0eba7b16694866b5a79476a7ef4b1b78f7f9c176
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
ui-widget-header has no border-bottom-radius
ui-widget-content has no border-top-radius
cause both widgets are next to each other
ui-icon use the blue hightlight colors
and the blue icons for more consistancy
Signed-off-by: andreas kainz <kainz.a@gmail.com>
Change-Id: Id891548c56b540f8d0b27f65b805c1823fe28906
This is needed to correct overload
resolution of these operators.
Change-Id: I02c0859674efe112102a8d3833bfb0a30b1a6574
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is needed for correct resolution of these
overloads when we add more that are otherwise
ambiguous.
Change-Id: I6e442b661445f49502fca9271ed6a11278c78d61
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Add switch UI to notebookbar function to desktop helper.
Remove tagnotebookbar.
Remove clickonidle function calls.
Tests should be more reliable and faster now - tested locally.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I8b05f0b7cf3755ce6e1fe35a26a4ec1154bb2510
This reverts commit d816daef16.
it didn't help for switching the deck...
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I9443bee328ff8032ba910668fc56cdd33e7be7f7
on space select entry - single click
on enter activate entry - double click
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I042ad4d4b10c9913fee1ccd5140ac2e173bf6ea9
Implemented an additional scroll in _onGraphicSelectionMsg() because
i did not found other events that called when in calc or impress
we doubleclicked on a graphical item in the tree of navigator.
It works different from writer, because here we dont have a cursor,
so we dont get any cursor related event.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: I0322dfd30db907bc993f20714d0e3be916f2c352
Altered a condition why it does not scrolled to the cursor, when
graphics was selected.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: Ib12cc9e0432685d46462ef52936cec2f5e5a753f
Make conditions to not send rendershapeselection message when a
frame activated in the tree.
This may not the ideal fix, as it may be a bug in the
rendershapeselection... it start to export as svg image, and failed
because it does not have background property.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: I909d4855c5f6e515a24b85700786f76571708e47
fixed treeContent scroll, when selection is changed, so now it
scroll only the minimum to make the selected line visible.
Signed-off-by: Attila Szűcs <attila.szucs@collabora.com>
Change-Id: Ief818069692a1bb54bd75736a97062d41826e802
- Make it bigger
- Also size is not enough, specially for slides that have backgrounds
- Add white inner margin so there is a clear distinction between
- what is the slide preview (image) and its contour
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ifee386b98d74c937efa35c19551334482ec18632
In dialogs we put tab list directly where tab control is placed.
We don't need special container anymore (setTabs is not used).
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I9d26a64362ee2c6ae08b44bf2dc54baf7936d0d8
The UNO command state has changed to Point (row, tab)
and Point (col, tab), Otherwise, if the row or column
has the same value for all sheets, the state cache will
not report any changes to the client side.
Change-Id: I0ad4a058d9328ff3b7b2455197a87880d8e43125
Signed-off-by: Henry Castro <hcastro@collabora.com>
- previously we set the Modified state in admin panel only when
wsd successfully upload the document to storage
- modified state updation depends on core, it might happen that
uploading is already done and successfull but we didnot get
the modified state from the core which will show wrong modified
status in admin panel
Change-Id: I014a8f92753fc6a93b37921d0f3cdce390bef35e
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
our focus is based on detecting tabIndex so setup it's value for tabs
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I61402657a5dbd6adf188266e483bdba79a948911
Remove inline overflow style.
Before this commit:
It seems we are adding inline style overflow visible onRemove()
- important for when we switch compact <-> tabbed view - but we never
remove that property. Thus we end up losing the ability to access any
element that doesn't fit the screen via horizontal scroll
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id1ed8cde27af037f6b28b1966dfe4c563b0120cf
When we fail to download the localizaion javascript
file, for whatever reason, we end up failing to load
the document. This is far from ideal.
Instead, we simply log the error and move on.
The end result in such a failure scenario is that
the document loads, but the UI is only available
in English.
Change-Id: I5d29ff68870d0cd84d86658ccfd4e3185cc62562
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
window.screen.width/height returns the width/height
of the screen in CSS pixels. window.innerWidth/innerHeight
returns the interior width/height of the window in pixels.
This includes the width of the vertical scroll bar, if one is present.
That gives better result. eg: responsive mode
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Ibecb9614224cb3bfd6d5d8dc9ad5febe6aa7673b
focused entry has a 1px border, make sure there is a space for it
in the treeview so we can see laft and right border
also make sure it works with RTL
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iae65811b7e1a2c74f47be1cea09607e48ef661af
and don't add event multiple times for every row
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia01ce1e81828d5ec40d84888b82ed2294ffef550
This can be tested with Writer's Reference -> Add Citiation dialog (left
tree).
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4a3bf6bd0d4f7f061725b6e796437a74f10cf11c
Previously it used span elements to focus popup listbox.
Now the listbox itself takes focus because entries
don't have tabindex anymore so they are not selected
when tab key is pressed
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5ef87cf1717b1249994bbf435fa9a55738c81a12
Can be tested in Writer's Add Citation dialog (right table with header).
from: https://www.w3.org/WAI/ARIA/apg/patterns/treegrid/
Tab:
If the row containing focus contains focusable elements (e.g., inputs), moves focus to the next input in the row. If focus is on the last focusable element in the row, moves focus out of the treegrid widget to the next focusable element
Down Arrow:
If focus is on a row, moves focus one row down. If focus is on the last row, focus does not move.
Up Arrow:
If focus is on a row, moves focus one row up. If focus is on the first row, focus does not move.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I72c8ed0b729965837e939bc327666461dd82beaa
a
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Id3f7812e8ce0a29c2ddae92b8b5d4d5a36569de2
It seems we no longer always issues textselection:
message after these uno commands, so we end up
waiting and retrying for the longest time.
Change-Id: I47b15b9830585ae58e4400fcf760051506ab69dd
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Best to have all .cpp files in compile_commands.json
so they can all benefit from the tools that leverage
it. So now we recursively generate the file for all
.cpp files in all subdirectories. Most notably, now
all test files are included.
Change-Id: I312d812463607b32fe6b9e83b10900c17ae86185
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Fixes https://github.com/CollaboraOnline/online/issues/6254
Before this commit and with recent a11y changes generic btn hover
styles were bleeding out to multiple places where icon btns are present
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I3855d081595a2d3aa56e58137e21aba5d7bf8532
before this commit the triangle was misplaced, under the icon instead
of side by side
(might be related to https://github.com/CollaboraOnline/online/issues/6236)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id8d118471dcb02b5bc79399a4319ee514af03c5b
We now track the storage attributes in three
distinct states. The first, when we issue an
uno:Save (called nextStorageAttrs), when we
get the save response (called
currentStorageAttrs), and when we upload
(called lastStorageAttrs).
What this does is allow us to separate the
attributes without clobbering them, while
supporting retrying when a failure accures.
Specifically, we shouldn't lose the
attributes of the latest save when the async
upload completes. Similarly, we should
preserve the last upload attributes when
the upload fails.
This approach improves reliability
significantly, as evidenced through the
new test, UnitSuperfluousSaves.
Capture the current storage attributes upon saving
Change-Id: I91756fda7b9ed5887dc4ed9691db536371b5bcad
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
A new field, called wasModified, is now published
in the uno:Save result. This gives us an accurate
state of the saved document, whether it had
user-modifications, or was an unconditional forced
save by the user.
Using this flag makes the IsUserModified header,
used during the storage PutFile request, much
more reliable.
Change-Id: I0b7e4421d4a42eef01e19be8d9ee0bee6bff9f03
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
It's easy to use keyboard shortcuts to issue
multiple saves within a short period of time,
which is hardly useful to make saves faster.
In fact, they'd make the server and document
slower by adding overhead.
Similarly, we could get autosave requests
on certain occassions (for example when
the last editor disconnects) while saving.
Again, there is no advantage in issuing
another save in that case. We re-evaluate
the save state when we get the save result.
Here we prevent issuing another save while
one is already in flight, regardless of the
reason.
Change-Id: I9503adabc3a9f1dc6cdbbcf93c5cccbc5414fcf3
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
load using script interfaces.
There is use case such reverse proxy uses another domain
to request the l10n json resources, but the CSP Chrome triggers:
l10n.js:62 Refused to connect to 'http://192.168.0.2/localizations.json' because it violates the following Content Security Policy directive: "connect-src 'self' ws://192.168.0.1:9980".
request_JSON @ l10n.js:62
String_ctr.<computed> @ l10n.js:85
(anonymous) @ l10n.js:263
(anonymous) @ l10n.js:286
l10n.js:62 Uncaught DOMException: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'http://192.168.0.2/localizations.json'.
Change-Id: I57fff24c00adebdf7dd06929d6341ea14554a6d2
Signed-off-by: Henry Castro <hcastro@collabora.com>
- I some situations %storageserver domain is not the right place
to redirect users (integrator might have another support system in
place)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I0008819665a96677cca06d9654e6629cfcac98b1
icons or being set with a non 1:1 ratio, missing width in the css.
Also better to reuse the btn-size
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I55b005d83718da81d9a7a44193b6f9de7192d41e
This avoids removing the jails of other running coolwsd that share
the same jails/ directory, such as unit-tests, cypress tests etc.
Assert on fatal system error to help catch this during test builds.
Remove old unit-test specific approach, and generalize it, since
apparently we did a recursive cleanup of other people's jails anyway.
Remove over-complicated recursive approach, for a rather simpler
one-level scheme. Avoid following symlinks too for safety.
Remove obsolete lo_jail_subpath setting.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I371f8c0e22f64fb2befb4b58f72cefa39567f3b5
Wait for user to press Alt+C combination.
Set width for mobile comment containers.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I4e4b47ba8b0b2dc05edc3aec6e6836009ce07b05
Check that everything is where it should be; catch and warn
about jails that are corrupted beyond our control, or perhaps
manually un-mounted etc.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ib5f7769ded119d7c6126984b040d0e5565ca8055
The suspicion is that the update popup messes with focus, and can
break tests after they start intermittently - at least in
interactive mode.
cf. also https://github.com/cypress-io/cypress/pull/16694
Date syntax is altered to avoid another bug with cypress
parameter parsing.
Change-Id: I92b9911eb7b3673a64a9d123b2c110111b7c3549
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
With the a11y improvements from
9d3d0cdee7
we now add !important to visibility: hidden that in turn makes the
browser ignore the inline display block. The result: we get a new tab
content without the tab itself (it's hidden)
- Fix this by removing the 'hidden' class when the tab button needs to
be shown
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I276d3fa62d89b32935de0357d0b24f558fcf3fd6
This changes make cypress tests more reliable, specially in slow or loaded machines.
Signed-off-by: Jaume Pujantell <jaume.pujantell@collabora.com>
Change-Id: I574b0db3e81e57a2dc682fbe2ed3f0301ad8e52d
If the page widget (elements that end their id with Page) have just
one column this will not take effect.
Why: the grip-grap (for both columns and rows) of 4 px set in the
jsdialogs.css is enough for many cases but when we have a Page with
more than 1 column the 4 pixels is too small to distinguish the
different sections.
Dialogs affected by this commit: All with child content id ending in
Page. Examples of improved dialogs:
- File properties
- Char format
- Settings of Footnotes and Endnotes
- Paragraph (format)
- Bullets and Numbering (position tab)
- Page Style (border, Header)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iebe9f01b758f1af8b43317cdf01a44f74c70cc42
similar to d1991e177c
but his time addressing:
- outdated css rules (remove them). They are outdated because we
already have `.unotoolbutton.notebookbar .unobutton`. Plus all of the
with exception of `vertical-align: middle;` were being ignored
- Do not allow browser to calculate width and instead set the same
value as in height
- Move `vertical-align: middle;` to a better place
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Idb2de12365727d0ed2886729d9effbf36ede31ab
Tab:
When focus moves into the tab list, places focus on the active tab element.
When the tab list contains the focus, moves focus to the next element in the page tab sequence outside the tablist.
When focus is on a tab element:
Left Arrow: moves focus to the previous tab. If focus is on the first tab, moves focus to the last tab.
Right Arrow: Moves focus to the next tab. If focus is on the last tab element, moves focus to the first tab.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I24bd15f1efd265cc99cced5b058dc547d0a07e8f
Best to avoid span elements around button text
The innerHTML here is harmless since we are using a string created
by us within the same function.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I72af17cd2788e7ba4b3ec1c255058e18884e0be1
Create a new CSS rule to make tabs' content lower enough from the tabs' buttons.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I3354b93711f1e93aa9c97c31b3717cad7b917351
Can be tested with Calc's Data -> Sort dialog
When we have multiple entries we still should scroll only to
the end of last entry. Previously we added lot of extra space.
Also this change prevents from adding unnecessary margin to drawing
areas.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Icdfcba0a02d0b814460f58219db48dd856c059a1
For some reason we only checked for the closed
socket case as failure and returned 0 in that case,
for error cases, we returned 1. Likely the API
had been modified in the early days, but this
return code was left lopsided.
This meant that even when the handshake failed, we
still called readIncomingData or writeOutgoindData,
depending on whether we wanted to read or write,
causing a rare race-condition.
When a client (HTTP request) connects to a server,
it needs to send the request, right after the
SSL handshake. SSL_do_handshake could need data
from the socket to complete the handshake. In such
a case it returns WANT_READ. Unfortunately,
because we always called SSL_read, the missing data
could have arrived between the SSL_do_handshake call
and the SSL_read call (a rather short duration, to
be sure, but an open window all the same).
SSL_read would of course read said data from the
socket and, since it still needs to finish the
handshake, will buffer it. It then returns the very
same error that the SSL_do_handshake returned:
WANT_READ. Of course we will oblige by polling with
POLLIN, which will time out (there is no more data
to come, and the server is waiting for *our* request
and has nothing to send us).
The only way this deadlock could break if
SSL_do_handshake was called (which will consume
the buffered data, return 1 to indicate handshake
has completed). Since we wouldn't call it unless
and until we get POLLIN, per WANT_READ, which won't
happen in this case. And since SSL_read doesn't call
SSL_do_handshake either, the request times out and
that's the end of it.
The fix is to not call SSL_read when the handshake
isn't complete and needs more data, which we do now.
Fortunately, we have very few SSL clients, outside
of unit-tests. Most notably the WOPI client. But
even then it's not a heavily used connection and
might not even be SSL-enabled (for LAN servers).
Change-Id: I04fd3dae151904194f3d7579dbf8c671b2580ffb
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
A rare edge-case happens when we have a socket
that is closed (and we get POLLHUP or POLLERR)
but upon reading the socket we get EAGAIN.
This was observed when simulating EAGAIN,
and it is possible that this is quite impossible
in practice (since we read only when we get
POLLIN), but at least for the unit-tests
we need to handle this case, so we don't
get random failures.
Change-Id: I77af1726066507af5d5ada68fe11b479a4e579e5
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We don't have to read the wakeup pipe
under a lock. So we no longer do.
Change-Id: I6bd724b9748add3022b4f9aa2268094b9818f3e5
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
add forcecaching parameter to coolwsd for debug mode.
Change-Id: I6f38e9a4fd6dbb76e92105c76e8abe3e75f19ef5
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
We now always handle socket polls without skipping
when the number of sockets change. We verify the
socket FD of each socket before handlingPoll to
catch any violations of the preconditions.
This should avoid missing any events and also
handles timeouts better (which are checked
in handlePoll). It also protects against
unexpected modifications of the sockets, with
proper logging and assertion.
Change-Id: I5659eb57231a490e6c813e7a0222443b534713c6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Reading larger blocks should avoid having
the pipe back up when we accidentally
attempt more wakes than actual ones.
Change-Id: I7766230f60dbf069668ee7919f766e9093df7017
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
with a11y we now have those labels set via <label> elements and thus
they are getting browser specific default style for line-height
- Set to the same line-height that they used to have before, when they were
<span> and were inheriting the line-height from <body>
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If9afa2217e5d357ea27b8e7fbb0d63f3acdee80c
This was introduced with the a11y changes (button is getting
browser default padding style)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic648cedc1d3c72e0ae53e8bd244f1a04da868d8b
In some rare cases we can't write to the socket
before we terminate, and the last message is
lost. This is observed in tests and especially
when we simulate socket write failure.
Change-Id: I9fb298edfe53de3c7ea0c2f31c02ba370167f96e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
There is no use-case for calling the
thread function of the SocketPoll
from outside.
Change-Id: Id8e87369494817aaab749d03d1cd4cd3724c2da1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Particularly annoying with trace level logs
when they trample over one another.
Change-Id: Ib1a8f8b8117364886af5043120e65ec7cb12e12a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The port used for client connections does change when
we cannot connect on the default/first one. There is
no point in announcing the default when we don't
yet know the actual port, and similarly it's not
helpful to do so before the server is even started.
We also move the remote-font-config thread to an
earlier point and merge it with another #if !MOBILEAPP.
Change-Id: Icc28817c7a03d49a7e130b076e545fe3ce2fb81a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
So it's consistent with the latest NC strings
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic1d49c6d871aee86f80aeb5c4e6936b33f3fc93c
Before this commit buttons were being generated with padding
this is not needed ( we already have safe margins applied to
the parent -> 'unotoolbutton' )
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4f1b4328131550d906cde3328c7de02daffd76a1
Before this commit we were setting buttons in places such as
the sidebar with weird ratio (not 1:1) this might lead to problems
when aligning, adjusting gaps. Better to adjust gap or margin if we
need bigger spaces in between
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id60cd6353de2ace2a066c0d1624000a09f0ca98e
Fails intermittently under load, responsible for most unit-tile
failures.
Change-Id: I88de8524b51ee7d97a28e31c001534a506d52f0e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
- re-use btn-size variable
- make it clear that this set of rules is intended to sidebar elements
- Improve selector (more clear and so it doesn't target other
elements outside of the sidebar)
- Move it to jssidebar.css file
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib03c412a1e05fd6ed315f58a70486f14eaf5b9ea
Similar code is scattered in the code. This
should help clean them up and make usage
easier.
Change-Id: I02f82c9aa169f591c5688c4b2adca257eecf8221
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Do not place px in light or dark mode css instead use the shared
cool.css :root for that
- This avoid outdated values in the future
- There was already one like that: --annotation-input-size
had different values between light and dark mode
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I5cd95a36e160003101f6f92108bb5244bfafcdd4
Before this commit was impossible to use the translate button
on mobile phone
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia93e1bf009723f3f7791b63f0b15a74467595ab7
Since we have change the generated HTML and now we have proper buttons
and img inside of them, there is not need to resort to this methods
since the img will automatically be centered aligned within its button
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I944f5c677c6d79f2f28645e4e8d081868f094262
After accessibility work we need to change how we target those
and also we need to revert that `height: 100%` and replaced with
24px so we can know for sure how much th element will occupy
and to safeguard for cases when the svg is bigger
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia4102ccc5c58d4807d8b05d360342c1ea7128c3b
This is a follow up on f9ad2ea3c3
with Change-Id: I1c200f2208b4f762d01dc6dd85459dbedce7b03e . It
leverages the flex added there to align and justify items.
What it fixes: Radio buttons not being aligned from the "left"
side and behaving slightly different in terms of alignment
if anything else changes around
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I9cb6f24c16603f40acf797c6b68d4305f38cdc58
to make some space between elements in grid
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5379a1a7fd96cb1fe351cb5b52ce1433eaa7eb53
they will be aligned to the grid size so look more unified
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4900e7d4005d172226c23919505702f6926260b7
Interestingly, we've been sending the wrong length, resulting in
[ docbroker_003 ] ERR #-1: Missing final newline| wsd/ProxyProtocol.cpp:158
type errors, as we read that back in coolwsd.
Change-Id: Iff7d1d38b0ed3e99c1d6903e2663c4335a36aaa3
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
sheets[i].href can be null. Seen with proxy.php.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I3d774ace869d141973a92abab8ef9ac83e1e0018
Target .ui-tab instead of .ui-tab-content
.ui-tab-content doesn't exist anymore, we can safely remove it
from CSS
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I17df0fb9de73ffe8665291d9dded8715bed9963c
- Don't create empty parent button just to have a another button
inside
- Update CSS so the text rules are applied to the button's text
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I7f3a54a131a7a44109789a6612af8047963d8e7b
previously when using tab key we focused drawingarea
it wasn't possible to focus other widgets
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Icf23905dfbf04ff46cf8766212a645b962fba98e
This changes tabs into button elements so they can
be switched using keyboard Enter key. It's also better
from a11y point of view
Styles has to be !important to override button styling
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia4ced59544be18ae79d41b4f837eeb31ab80b8ef
Refactored TextInput implementation. A content editable <div> is used
in place of <textarea>.
<img> elements are used as pre/post spaces.
Minimal changes to FormulaBarJSDialog, since some code was
dependendent on
TextInput details.
Refactored some cypress helper funcions, too, since cypress tests
expected a <textarea> element.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I2141d7769588bb5bf8a0fbb62f036cb78f914966
Otherwise, the toolbar re-layout half the size.
Change-Id: I492a98f822a829d814b4c6e6b4765ec14a65cc98
Signed-off-by: Henry Castro <hcastro@collabora.com>
On iOS, the "export*" commands cause a file to be saved to the Online
server, not locally. So, to save locally on iOS, set the commmand to
"downloadas-*".
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I4da2614d20af7ae6977dd94713ba16e6eebe1b9e
Responses have to be handled even in top level widget.
After rework we sometimes didn't handle responses
because we didn't call container handler.
Put it in a build function also.
Bug was in find & replace dialog, help didn't work
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I07a69c071b65c6574a1656c71aa7eab361f7e729
We don't need the first one and we don't use the latter one.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I1f48ff5487621781eb38dd8e4e8e2a389a3059d6
'trimIfInactive' overrides a member function but was not marked 'override'.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I25b0033652a3362118a77b7ef5ef7a511ce492ea
the commit 51bb1d3 with the following change-id
I16a5df46bced608952c22bf979808bc735645366 introduced incomplete
CSS rule, rendering the whole css file invalid
So we should add back the rules and just remove the vex classes
but and upon further investigation button are already inheriting
font-family from jsdialogs.css: .jsdialog-container .ui-dialog-content
so we can just remove it altogether.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iab42230efc7341e8967ce776f0d3decf41655ba6
After reading Rizmut's commets, we should probably revert this for now
at least until we decide on the icon size while avoiding bluriness
This reverts commit e6782d6b5d.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
This is fix for regression from:
commit a2d666d53a
JSDialog overlay: Use CSS rules for positioning.
When switching a tab in Format -> Characters dialog,
update message was received and dialog got request to
update position. Even when we had nothing to update
we did modification to dialog position causing jump.
This patch makes updates less agressive and does update
only when calculated value is really different.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I27364e5ccb60a0391ddc9fb9e22078d559518f69
The following commit caused a regression with
PDFs which are read-only, but may allow comments.
commit cca0a561ed
Author: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Date: Sun Jan 15 18:29:18 2023 -0500
wsd: never upload using a session that is read-only
Change-Id: I9bf1fde21b47a4f119b99cc58f76cd683c2152a9
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Tabs were changed to buttons and thus we need to readjust the CSS
so text color and others are correctly applied to the text
Also add :not exception so the tabs are not styles as regular buttons
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I1bc1681e86f17ee7afb435f7c3fc099b80abac2e
In this case, caller (developer) should set the focus manually to a child element of the window.
This corner case can be encountered when caller sets the innerHTML content of the dialog after creating.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I66746c9636e207421cecfe55369c732c4fd4b1bb
This makes any resizing or position easier
and it's what is expected from "buttons" (it's the default value)
and those icons are buttons even if the html elment is somehting else
Bottom line: better to account for any border and padding in the values
we specify for width, height, border and padding. This makes sure that
the content box shrinks to adapt to those values.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I39af02f983611bc751e764c26d13d955b7774928
Avoid SIGKILL'ing children when valgrinding to allow time to save
massif traces etc.
Change-Id: I255a62b6605164ac5037a06455f1adfcba05759c
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Builds on a new LOK API to do the same in the core.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I4443cd2ffbb6c7af0726162aec2ba78fc354d901
This fixes regression from:
commit e5d86f0b3c
We can use foreach when there is indexed assinments.
there is no index field but id
it was not sending commang to the backend to switch the tab because of
that
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I665e6cc99c9954480b4dc729ef415fe14e35ed9a
- Make sure the grid columns of 'Find' and 'Replace'
share the same minimum
- the maximum parameter in minmax function (so min-content) is
ignored when that value is lower than the min value but it is
there for when the language has quite long 'Find' or 'Replace'
making that max width increase according to its contents
- Remove extra margin from checkbox so it gets aligned
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ica38b407f2a5936e3657dc067ac0658ef5b8aeed
Fix issue #6050 by removing all entries that disable CTL and CJK text
layout features and merge all changes other than the LanguageTool
entries from coolkitconfig.xcu.in.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I1816062056bee8c760e0520b11edd5f23d4d9bca
Setting modalInPresentation to YES will ignore all events outside of
the view so set self.modalInPresentation to NO.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I5e886079edec6f7e37676be29bfaa3061e8eb4ae
I replaced the hack with foreach.
Also added one more foreach for distinguishing the click events from keyboard events.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: Ibc1d955636ea4dde214c24b911c17c7b0de5f9e0
Don't show scrollbars for hidden content.
Affecting data -> Sort and data -> validity dialogs in calc
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I3124d921ef7819f274e9f583a605e63b66722388
When drawingarea is used as edit filed it is updated
on every kep press or mouse click. We need to setup unique
id for img also so focus later will be set for the same element
after we get update message. (focus is set based on previously focused
id)
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I89021839177ab78fd0f2346cca2c58fac257af6b
When integrator shows dialog eg. for save as with the
input fields, keyboard appears resizing our frame.
We shouldn't then steal focus from input.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ifda6e7049b1b329fb051966e38fa854c93c05065
Empty api key string indicates that integrator supports
Zotero. When any functionality is accessed by the user
we show notification to integration so it will show a
popup for user with instructions.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Id7289097f245cd3c537ccf78cf818c1aa0d57231
When using Nextcloud with source file with spaces in the name
eg. "file name.docx" and we tried to export as PDF
then error appeared.
In the logs we had "SaveAs produced no output in '<...>file%20name.docx', producing blank url.
We need to decode file name similar to convert-to case.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic60cefefc4e20b53feee28b86443090c147bb66e
Probably due to core side changes. I needed to comment out the property checks.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I26683265b827447e676a6463b19b5cb84a0040fc
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
This adds a dark mode toggle to both user interface views (compact and tabbed view).
In addition, this code fixes the problem that the initial theme did not load properly
based on settings. Equally, the Toggle in Notebookbar will now appear
"selected" when pressed.
Signed-off-by: ChrisGlad <chris.gladman2004@gmail.com>
Change-Id: I0e0c282cec24d9bb7fbfc4131ba3875976cea5fd
This reverts commit a864d41c09.
Because we can now work in this WIP feature in its dedicated
feature branch.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
- forcefully send unocommand when jsdialog popup is still open
- fix navigation using ArrowKeys in treeview
- fix console error ev.data is null
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I6dd75b8b576754513574749e1bd9675581caeabf
- instead of using /dev/[u]random devices, use
getrandom() and/or getentropy() to make direct
system calls if sys/random.h is available.
- if getrandom() fails, we need to fall back
to "/dev/[u]random" approach.
Signed-off-by: Bayram Çiçek <bayram.cicek@libreoffice.org>
Change-Id: Ied37d72feabf005725b615b02854912809236bbc
Behave the same as Contol.Menubar and never disable Paste toolbar
button. Native clients that run LibreOffice locally may send a
"statechanged: .uno:Paste=disabled" message when opening a document
if the system clipboard is empty, So, we ignore such messages or else
the current document's Paste toolbar button will never be enabled.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: Ied2aaa49f1a9defe30541af49f4becda35df568b
Replace closeAll calls with uimanager.closeAll. It works for also mobile view.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: Ieaf11fc8f68390f789c18a29813a171d51c13a88
Mobile apps don't substitute these values so set them to zero length
strings.
Also, the iOS app sets the base text direction via the "dir" parameter
so add handling of that parameter in cool.html. TODO: check if the
Android and GTK apps need to implement the "dir" parameter to handle
RTL layout.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: Ied8268ec256011281961ef610d53baeee0efe9cd
The iOS app saves directly to local disk so, other than for
"view file extension" document types or other cases that
I am missing, we can assume the document is writable until
a write failure occurs.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: Iacb1589eded18f0cb21a5dd8e4d91d295ae697fe
Limit escaping of non-ASCII text and splitting on the first newline to
only certain message types on iOS.
Also, fix mangled UTF-8 text on iOS in jsdialogs when using languages
like Greek and Japanese by only setting the image bytes for only the
same set of message types.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I9cd088509ba9724108da3c9457cd3d098b45723f
Previously we waited at least as long as
it took to process the last request before
issuing a new one. This can be unnecessarily
long, especially when unloading. Now we half
that time.
We should consider a more sophisticated logic,
especially during unloading, where it's best
to upload quickly.
Change-Id: Id903b8a064bd8431578221dc9386ab08d46dd2dd
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This corrects the reported upload duration
at the end of uploading.
Change-Id: I9d3af4d3dce5aff0c3526ba009fc0b27150bc070
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
It seems more complex to have #ifdef guarded logic
around a function call to pass or not pass an argument
when we that same argument is already defaulted in
that function.
If the difference between the two paths is primarily
the argument, then we can always pass it, making sure
that in the case that defaulting would have been used
that we pass the same default value. This is now done
with assertions.
Change-Id: I333eb3f42cb51dfab8584ae8c5aa52ee45c5a9a1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We could still have session instances in the
_sessions container in DocBroker by the time
we destroy it, what counts is that they aren't
live at that point.
We could still have sessions because we may
be waiting for the kit to confirm disconnection.
But if that was the last session, the kit will
instead exit and that would trigger the
destruction as the PrisonerRequestDispatcher
will have to clean up the DocBroker instance,
hence destroying us.
Change-Id: I8ce103d38edc355d09da046e1b875f0e62768adc
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
After unloading a document, the ChildProcess instance
may be destroyed by the time that we process the
internal prisoner connection. In that case, we
can't find the ChildProcess so we assume it was
a premature death and issue a warning.
By tracking whether or not a PrisonerRequestDispatcher
had an associated DocBroker, we can supress warnings.
Change-Id: I8bab882283f27f7d5f724e878aae19837445a2fe
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- image test consistently fails without waits in CI
This reverts commit b529c96a48.
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I66bd85c8fe1ce28ccab8d644a98265145d3de64b
we send value on every key press now, but core still
sends updates back, after we update core to not notify
us with the same value it can be reverted
this prevents us from having incorrect text when typing long
sentences and receiving updates with delay
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: If87c3f1c83018920dfaa8f3c31f567b25df27c61
Currently translated at 100.0% (525 of 525 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (525 of 525 strings)
Translated using Weblate (French)
Currently translated at 100.0% (525 of 525 strings)
Translated using Weblate (Italian)
Currently translated at 96.9% (509 of 525 strings)
Co-authored-by: Andras Timar <andras.timar@collabora.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/fr/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/it/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt_BR/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ic8131fcba722e09e8b2a73df39de25b54b88ae59
It is misleading to use the word "pixel" in a variable name when the
variable specifies a size in twips.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Idc59c3dafd63a9ae73601f9c367b37c495e1593a
Tweak the "zoom" variabe to be 1 so that with this thumbnail size, for
a typical document we get more of it into the thumbnail.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I419afccbf57eae23062ab4c849dd41293f068f00
Previously we only waited if a new auto-save has
been issued at the point of disconnecting the
last session. However, we could have a save in
progress, particularly when it's a slow one,
and we should equally wait for it before
disconnecting the last session.
Failing to do so will exit the kit right after
finishing the save and will rob us of the
ability to upload the just-saved version.
Change-Id: I678689a95211fa8b80bcd3e8d4537de7de5d6632
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Also handle OOB values of config setting.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ia0d4e2e0475bfd6d487006847ea0622b573569b7
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
If we have no write-able sessions, we can't lock the document -
fair enough to complain, but not every ~300ms - so defer another
lock period in this case.
Change-Id: I7beb974b3c17fd6ac01a32d8fe50261a54340665
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
There was a naming conflict with infobar event.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I0b2a80bcb6f6e636980f8acff21f39fec5414174
I am a bit surprised that this seems to work. Thanks to Szymon Kłos
for pointing me in the right direction.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Ie9740a7a281a2b82ac7ca9fdf5f6374a29feec5d
It was just a thin wrapper around paintTile() anyway.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I7cca1b05b1ded754ae1f50a0e9d434b505247e70
using URL parameter we setup documents position on load.
example: ...&target=image6.png|graphic
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I855bdb148819966e0d51dde217a94474003a6437
Using target parameter we move cursor to the desired position.
Thumbnail then is created and sent to the client.
Example target: "image7.png|graphic"
Original author was Mert Tümer.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I170f6af6fd29c420565feca69b8bef034fd91a66
Which generates PNG of selected link target in the document
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Icfdca2f0b58ea370ca0125c188759e942aacc2e0
There are costs to many threads, and diminishing returns.
Change-Id: I4d4dc0491c48af303375d09d8eb19ffebedcad83
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
fixes wrong value from
Mobile: calc: formulabar element: align to top on expanded
8b378e9965
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I8b5706957dff007137e3aa1ce677b825ada3e261
In some browsers addressinput was misaligned (no initial margin)
- Remove FF specific margin-left
- Add non LTR specific margin to every browser
- Use the same dimension (8px) as used in the .formulabar.toolbox's
grid-column-gap
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I6a2e86a9a56f05bbf514d12a080fbcb2408cb816
- Make sure all elements within formulabar toolbox fit even
on smaller devices
- Do not user margins to position, use instead grid
- Remove Equal sign (startformula). Before this commit the
startformula icon was visible and then invisible once the user
enter the cell to type -> it seems this was initially intended to save
space but the truth of the matter is that it causes a flicker and
where the position of the elements shift making even harder to write
on mobile.
- Solution: do not create that element in the first place on
mobile. Plus when the user enter the cell can always press the "="
right via the native keyboard anyhow.
note: avoid multiple instances of the same condition in FormulaBarJSDialog
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic4f3b7fddb9d862170a0e95243f4b19a89340575
Before this commit:
- Images (coming from link preview) could brake html parent element
- Metadata (p element) could brake html parent element
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I362afe9eadd86b88dc6afc584f635d50fac0ad03
The setModified is on an internal, AdminModel
specific, Document object. It is not the
DocumentBroker.
This reverts commit e33d6aa2ca.
Change-Id: Ib706927051678cfc19dc1246d679ef530eb8d586
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We prevent using uno commands multiple times to open the same
dialog - let's do this also for dispatch() which executes
commands used in Online, eg. for custom dialogs like Add Citation.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia022ac4c1b7223c630f3d83eb9b3ce2f1a2e2e1a
We had this for tunneled dialogs but also for jsdialog it
should be done. When trying to execute uno command when any
dialog is opened - blink dialog to indicate that user has to
close it to open next one. This blocks possibility to open
multiple instances of the same dialog.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I1777ce23292799edc3bbb896bf63872a354d7ad7
avoid an allocation and some pointer chasing
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Change-Id: I29711075d4bf840c2ef992341a6dadeeb87c6edd
this prevents from creating additional containers for
text views with multiple child nodes
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Id65fbe805c58e30ffa5ff86e3fdfaab5dc3a0153
in labels(classes):
- .no-color-control-label
- .auto-color-control-label
the value of padding-left property is
increased from 4px to 8px.
Signed-off-by: Bayram Çiçek <bayram.cicek@libreoffice.org>
Change-Id: Ide0b810cab18d63748678e3007b8ee8c7234114e
Add an empty callback for the busypopup window.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I84ed797feed93cfad6a66f1a4981ecacce23f104
Passing non-ASCII, UTF-8 text from native to JavaScript works
fine, but images become corrupted if any non-ASCII bytes are
not escaped.
The Socket._extractTextImg() JavaScript function assumes that,
in the iOS app, the first newline separates text from image data
so assume all bytes after the first new line are image data.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I06f4377bb3b7002a76041a198076decfee9e3733
This is a near duplicate of pull request #5898
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: Ib05a285f3642ec0ca745b0c74157190fda5bd3ed
Copy pull request #5890 but completely remove the old code in the master
branch
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I69d03bb3f10e756823ba2e32aae0c099c54928c5
Currently translated at 4.5% (5 of 110 strings)
Translated using Weblate (Persian)
Currently translated at 1.8% (2 of 110 strings)
Translated using Weblate (Persian)
Currently translated at 0.9% (1 of 110 strings)
Added translation using Weblate (Persian)
Co-authored-by: HM <goodlinuxuser@chmail.ir>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-app/fa/
Translation: Collabora Online/Android app
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Icefa2f4b73cfe3e40e82aa7c51ddba5990c7feaa
Currently translated at 90.1% (474 of 526 strings)
Translated using Weblate (Slovak)
Currently translated at 88.7% (467 of 526 strings)
Co-authored-by: Miloš Šrámek <msramek22@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/sk/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I489103f653d695e42206aa37d173167e7607d13c
idle handler is moved into typescript and outside of map variable.
vex dialog of handler is replaced with JDSdialog.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I341c28e9e3f1659987b871a235a50757f42d4d2e
when session expires some users might need to login again
in their integrator. Do not exclude those users. Otherwise
they might try to refresh and no session renewal happens.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I305d185fc8e9072e52b668e12e7ea80c55e9b93d
This is regression from:
a2d666d53a
JSDialog overlay: Use CSS rules for positioning.
When auto-save or save is performed we show busypopup.
We shoudn't send any messages to the server as it is
pure JS dialog.
Parsing error was caused by sending close message:
1677832085616 OUTGOING: control: 'dialog' id:'__DIALOG__' event: 'close' state: 'null'
1677832085617 OUTGOING: dialogevent busypopup {"id":"__DIALOG__", "cmd": "close", "data": "null", "type": "dialog"}
1677832085620 INCOMING: error: cmd=dialogevent kind=syntax
1677832085621 INCOMING: jsdialog: {"id":"busypopup","jsontype":"dialog","type":"modalpopup","action":"fadeout"}
1677832094401 OUTGOING: userinactive
Let's don't send that message for fade out effect we use to close it.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ibe430c389ba90f7ec53cc167ff860b24935a2241
Make the modal helper's ids unique.
Turn vex dialogs in clipboard.js into JSDialogs.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I99b06dafb95a2cf82004141b18012972fde7f836
The recent changes in LO Core, when edit a comment
in Calc the author data is not preserved.
Change-Id: I4f26ef2044d28bf55ff6a00a2e585ece79c6eb9b
Signed-off-by: Henry Castro <hcastro@collabora.com>
when document is loaded zotero may not be initialized,
this caused problem and citation style was never fetched
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I827bf4edf03dc81bbf8e246280ed14370e438494
sending requests without citation keys returns bibliography for all the items in library
this causes problem is the document already has some kind of bibliography which is updated unintentionally
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I34976f94bf3cbb6d07fe06e8b1ca974b2ee59ebb
- msgData is undefined when we get graphicselection: EMPTY message
- "Cannot read properties of undefined" error was stopping the further execution
therefore the view was not getting updated
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I4fefd9205ae46fee24c91d070e3f3f16c4912aa2
Download time can be longer and user can already switch to
other link. Verify if received and displayed link matches.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I502133d71a0a9032947c6233a0ac2750625b8650
Button is shown when CheckFileInfo contains 'EnableRemoteLinkPicker'.
After press UI_PickLink is send via postMessage.
Action should be finished with sending Action_InsertLink to editor.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I53c61a25d1fab655771742ec6d97dc056192642a
It was possible to use only one tab control.
Now useSetTabs parameter for builder is introduced
which defines if we want to use custom placement
of tabs handled by the parent container or put
tabs in the place where they are defined in JSON.
Custom placement is needed in mobile-wizard and notebookbar
as for them tabs needs to be placed at the top bar.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I6420e303de248058a7a94ead47b6672b717360df
Set position rule and some others of the overlay to absolute. So we can use it both for popups and documentareapopups.
Set max-height of the pop-up so it doesn't look ugly when the height of the popup is bigger than the window height.
Modify JSDialog for the new behaviour.
I also split the code into functions for easier maintaining while updating.
Add special rule for comments. They are not contained in the container.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: Ia7d12de23bc64d811156f565b076463cb22ee38e
Turn help popup into JSDialogue.
Change-Id: I81b198863f959de1047589fc028ac6c2ce3b1ff1
The max input size is 16384, so in case the input is saved after each
run, then this can allocate ~300MB of memory. This is considerable
amount, given that the upper limit of the fuzzer process is 2GB.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ieedb6a537d5b539255ed8bacd79ff23db3c15e9f
- Improves modal title instead of generic 'Open Link'(which is
already used in the button) use instead a more informative
tile: 'External Link'
- Indicate to the user that the web page will open in a new tab
as per request:
- Fixes: https://github.com/CollaboraOnline/online/issues/5893
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia4770d13ed0e5ef4f33aaa85054b0d21bea9e449
All modals shown with uiManager.showInfoModal should
have overlay which helps to focus on modal dialog.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Id6f159bba6c6be289dadf666b25bd610f2df0cc1
Since the helptab is shared between different doctypes we need to
make sure that writer's accessibility check doesn't bleed out to
other doctypes
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic4d35fe080cbefc2564db1a250dbf6d62274de69
The function-local static prevents tests
from changing the value of a config.
Change-Id: I5febdbf029293fab39f18afa6d905fd571d59545
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Hyperlink's text field needs to be a multiline but that doesn't
look right on 90% of the case. So better to style it as if it was
an input field but keep it as a text area so multiline text selection
doesn't get pasted back as one super long line
Ideally: if the user selects multiple lines and the Ctrl + k it should
concatenate it only for the purpose of presenting it in the dialog but
then the text in the document should retain the multilinear aspect and
be clickable . < - this is impossible to have currently without
over engineering so probably best simply style it differently
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I640f148ffd5bd76592fb30dde5545e2c26eda016
This fixes#353
For now add only the .uno:DefinePrintArea and DeletePrintArea
- Edit triggers a tunneled dialog and thus is not ready for mobile
- Add (allows to add multiple) is should not be added to mobile until
Edit is available
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I27b5377d00080e745aab465da4dd65fffeaa3217
On mobile, the Formatting marks
should not be visible in the hamburger
menu when on read-only mode.
- new menuItem.id added for Formatting Marks
as "formattingmarks"
- the id is added to the switch case so that
it can be hidded on read-only mode
Signed-off-by: Bayram Çiçek <bayram.cicek@libreoffice.org>
Change-Id: I17098e0cd0b59556ab85d93b51745ff376f6156e
The popups were enabled only for http or https.
Change-Id: I98b5ecf31faed28cfa91c13a3efb3b32ea5f8b42
Signed-off-by: Henry Castro <hcastro@collabora.com>
Not sure why I now suddenly needed this, too, when I recompiled Poco
for WASM (with different options than before).
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I7221947e0cd2264535b6d34e0640b95d7cfc7cf4
When id is missing for uno button - command is better source
than text, because it is not translated.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I57d8442b7c826aae6ba5a12c74172871103a3670
Three elements have the `.cool-annotation-collapsed` tag
Specify the correct one
Signed-off-by: NickWingate <nick.wingate@collabora.com>
Change-Id: I1c8f16c9ef7cfedecf02fe0c46afbf5cbde90a7c
Swap the ID names of the font name combobox elements and don't add the
"select2-selection--single" class.
Unfortunately, this change does not set the height of the font name combobox
to the font size combobox. I made a few tries at overriding the CSS that
sets the height of buttons to 36px but I was unsuccessful.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: Iee8b51a114f5a89627c7b83a4c937c71cad4b213
The new delta messsage feature expects PNG data to be unencoded or zstd
compressed only.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I776fb8e79fc9617edc5178ec66d6f0bac0706c71
Remove assert and allow delta messages to be handled even if
there is no keyframe. Although it might make sense to skip
delta messages if there is no keyframe, that causes some
content, at least in Impress documents, to not render.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I9b1cdc0812d008a6174648b9bc4854519018ffc9
AppStoreConnect requires each upload, whether it is released or not, to be
higher than the previous successful upload's CFBundleVersion. So this
script sets the CFBundleVersion to the first and second components of
CFBundleShortVersionString and the UTC timestamp of when this script was
run is appended as the third component (or the second component if there
isn't a second component in CFBundleShortVersionString).
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I90a667ed5634dc347eaff2fc0d8e83c3ea005d54
Replace leading "../" in absolute paths with "$(SOURCE_ROOT)/../" to avoid
the need to manually edit paths in the Xcode project file.
Also, all group files that have their group set to "path relative to group"
so replace all absolute paths in group files with the appropriate number
of leading "../" and replace "ios-device" in paths with "lobuilddir-symlink".
Lastly, verify that every file listed in the Xcode sidebar exists. A couple
dozen files in the core group have been moved or deleted in LibreOffice so
those were removed.
Signed-off-by: Patrick Luby <patrick.luby@collabora.com>
Change-Id: I09ef66273b049e75066e0a5b2589c80c93db0a77
Problem: pointer style was set up for a <div> element wrapping the map
pane, anyway a further <div> element in the middle had the pointer
style always set up to 'text', so any incoming mouse pointer msg had
no effect.
Now the pointer style is set up on the same <div> element.
Moreover I noticed that in writer mouse pointer hovering over an
edited text box had a wrong style. This commit fix this issue, too.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I3f62908b00ab748d19a3651270babb926252fe21
When copying is disabled, we still allow
copy/pasting *within* the document. What
is disabled is exporting the copied data
to the browser.
Luckily, this code was broken, and it
wasn't really blocking .uno:Copy at all.
Change-Id: I50a01eefbe1de3758b4451385bbc51fbde5878a8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This fixes an issue with video not playing back
when another view has selected it. We also move
the URL handling to graphicselection, which simplifies
and improves things, albeit at the expense of
unpacking graphicselection payload, which isn't
as clean as one hopes.
Change-Id: I64f81eabf0f0bc850db83233812eaae6d9e036da
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Currently translated at 94.9% (434 of 457 strings)
Translated using Weblate (Esperanto)
Currently translated at 74.0% (385 of 520 strings)
Co-authored-by: Marc Rodrigues <marc.rodrigues@collabora.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/eo/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/eo/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I8fc312f16cac74c4568d6f6f8eb5ca94cf9a853f
Currently translated at 89.2% (464 of 520 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (520 of 520 strings)
Co-authored-by: Andrej Shadura <andrew@shadura.me>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/cs/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/sk/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I484868c79f02a37af14fba9b39c94214bd0bdce8
Currently translated at 100.0% (457 of 457 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (520 of 520 strings)
Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/sv/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/sv/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ibf9f4a0919c8c249432206e013aaafad8ae69ba8
If we have already a feature unlock dialog open, don't let open the
second one.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I7c7235bc1a64c48ba69f11d0599bbb9839b7fe71
- unified menus in notebookbar
- unified 10 favourite languages and More... button
in statusbar, menubar and notebookbar
- dialog for "more..." languages
This helps with LanguageTool where we have available
lots of languages and list cannot appear fully on the
screen.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I90c59ee4e7abdafc5b81e8ca8aaa89745effb467
We are logging what we are evaluating as JavaScript later in the
function anyway.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I79972ec585dee128bbcca910def1d46e8134cdc5
Currently translated at 100.0% (520 of 520 strings)
Translated using Weblate (Croatian)
Currently translated at 99.8% (519 of 520 strings)
Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/hr/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Iee1a37f505b89db8a5962f3393b6dd1dd6345130
Currently translated at 100.0% (457 of 457 strings)
Translated using Weblate (Catalan)
Currently translated at 99.8% (519 of 520 strings)
Translated using Weblate (Catalan)
Currently translated at 97.6% (508 of 520 strings)
Co-authored-by: Joan Montané <jmontane@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/ca/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/ca/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: If803a571e5453daf90f3be7cb98dbe3fbff7c4ee
This improves the flagging of possible-modification
in cases where there might be a race between the
arrival of the ModifiedStatus flag from Core
and the closing of the document. This can happen,
for example, when the user makes an edit and
immediately closes the document. In these cases
we want to be able to assume modification based
on the last activity from the user that may have
modified the document.
The issue this patch fixes is that we were too
aggressive in our assumption of modification,
because it was better to be wrong and try to
save rather than not. However, this also set
the IsModifiedByUser header to the PutFile
request when uploading the document to storage,
which was not accurate or acceptable.
Change-Id: I84228bfbb92f688d303568027171df3686d2cd2b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
DocBroker's setModified notifies the Admin
of modifications, there is no point in
having the Admin call back into DocBroker.
The only reason that this didn't cause
an infinite recursion is that DocBroker
calls the Admin only when the flag has
changed, and since the Admin callback
is done asynchronously, by the time
the Admin handler is called, DocBroker
had already updated its flag, so the
callback doesn't cause an infinite
recursion.
Change-Id: Ic4028d54338f8043221571c25e332b4c77f6d628
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Without this change focus is on sheet and ESC does not close the dialog
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Ib60e681726393c67b38101d6eb48e3693ba156e3
we need to use containerHandler to get response bindings
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I8d38020ac3fcf889932c1cbd16005dd06f609e27
Before this commit, if the user would choose to insert a link
without text value (maybe plans to add the title later)
or when the user forgets completely to insert the text value
the hyperlink dialog would disappear and no hyperlink would be inserted.
If the text is inexistent -> take the hyperlink itself as the text value
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4487d3f3c6084e1da11d042d5e6930d4f772d652
Plus always good to inform the user of what is happening
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia9a85062f525139f716669e9cdacf444d6055274
adding 'uno' field to menu items broke some custom feature handling
removed '.uno:' from the command and if uno field is missing add lockUno field
it is a revert of a6cc06a with some additional changes
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I1cce37c0d943be5f2cd1ec53f363fbbd73464ac8
Currently translated at 99.0% (109 of 110 strings)
Translated using Weblate (Albanian)
Currently translated at 0.0% (0 of 110 strings)
Translated using Weblate (Albanian)
Currently translated at 100.0% (22 of 22 strings)
Translated using Weblate (Albanian)
Currently translated at 50.1% (229 of 457 strings)
Translated using Weblate (Albanian)
Currently translated at 15.0% (69 of 457 strings)
Translated using Weblate (Albanian)
Currently translated at 96.8% (493 of 509 strings)
Translated using Weblate (Albanian)
Currently translated at 14.6% (67 of 457 strings)
Co-authored-by: Besnik Bleta <besnik@programeshqip.org>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-app/sq/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-lib/sq/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/sq/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/sq/
Translation: Collabora Online/Android app
Translation: Collabora Online/Android lib
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I7c421af6ce5301b420b3422984e0aba7f544133c
Currently translated at 100.0% (457 of 457 strings)
Translated using Weblate (German)
Currently translated at 100.0% (509 of 509 strings)
Co-authored-by: Marc Rodrigues <marc.rodrigues@collabora.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/de/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/de/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ie2748b3550aae618c0033cbc8decddb74592cfc8
click and drag mouse pointer on row/column headers to
select them in calc
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I3d62269692ffe47269bd6b7db04175c0cdcfb4bc
Currently these tests share the Language tests,
but in the future they can have their own home.
Change-Id: I8e3c0ea08bc28624f03bd8e3441d8419607173eb
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
routing_rmdoc command is added specifically to notify indirection url
server about document getting removed with its wopiSrc
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ic077f210d520394e3ef8ced778604b7343436328
- make sure online connect to unique monitors
- able to disconnect monitor if uri doesnot exist in updated
json
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ia6cfd6c8e56416c37d211aae55828c92a4ba27e5
- once client get notification it will update the routetoken
by refetching it from indirection url endpoint
- added support to configure indirectionurl enpoint using
remote config
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Iead22af56c655bdece6b70cc4e97a1fa401b1bae
fetch route_token from indirectionurl and add them in wopisrc
parameter
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I6e724d0c59e12d4f7f6c125ec076e90d20b9b3c8
In cases where zotero item is added by a user and another user opens the doc,
if the new user does not have that item in the database, he may fail to do activity related to that item,
so we warn the user when we are setting up the zotero
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I9056f38334cb8d9b127ddb594adb083d25bd4472
Left and Right arrow keys are also allowed.
If user presses one of the other keys, focus will be set to map again.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I3786ed4b9ef04deb7e3e05f157843fc30f3dc76e
This prepares to start the next test
when the DocBroker of the current one
is destroyed.
Change-Id: I3a9672d8d03ad497f15a9bca262dfe1d4f197e41
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
to browser\dist, otherwise it has to be done by hand after every
wasm build.
Signed-off-by: Balázs Varga (allotropia) <balazs.varga.extern@allotropia.de>
Change-Id: I46c432116d0d42016dfc1573009d284f82c52114
if document contains existing zotero citation,
restrict user from changing the field storage type.
currently online does not have any ways to change the field type
maybe in future we can add some core APIs to support this
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I58caf403744431d34344f5a1cb635781409d7e68
Newer Emscripten SDKs no longer provide <sys/epoll.h> and
<sys/inotify.h>. The corresponding functionality is not present, I
assume.
Until now we have been using Emscripten SDK 2.0.31 and that is still
the recommended known-to-work version, but I am experimenting with the
latest, 3.1.30.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I26e89dc38554548aee3ce2dbf6ba352917ba6266
LOKit will be initialised in the lok_init_2() call in lokit_main() in
Kit.cpp. This change also puts setting and getting the LOK_OPTIONS
environment variable in the right order.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Iee6f5adcb60bb887083c67666c2d597a15686bf9
Signed-off-by: Tor Lillqvist <tml@collabora.com>
This tests the headers when always_save_on_exit
is set.
Change-Id: I1aa2d11db79f525f2d94ced8702514d5b3535fc8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This fixes the handling of the
always_save_on_exit=true setting.
Change-Id: I6993030c2af7fa080c8421c5cb4fa7cb9ea3eb9b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Improves stability by closing the document
only after uploading has finished.
Change-Id: I20927a5d009998d9d7a25c3309fef02a45077c70
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This fixes a corner-case where we modify and
save during uploading, which means that the
next save will not have any modifications,
and we will not merge the attributes until
we get new modifications.
Change-Id: I621e26e04ea3e0d04a9a3d535ff2cfc607d56fef
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now capture the flag that controls the
IsExitSave header directly via the result
of IsUnloading(). This makes passing it
via function parameters obsolete.
Change-Id: Idb4df4f96d66b4a9f92ff9a570f48be895e623be
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
You now must pass --with-wasm-additional-files=<path> where path
contains a file called sample.docx.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I21e62feb6282833a5d60b31db26328eda63cdaea
Now I hope things are initialised in the right order and the plumbing
gets set up so that messages are passed as expected. It seems to work
most of the time.
Main changes are:
- The online WASM executable is built using the -s MODULARIZE -s
EXPORT_NAME=createOnlineModule options. This means that the WASM
runtime is not automatically initialized and the main() function
is not automatically started. Only when the createOnlineModule()
function is called is that done. Calling exported C/C++ functions
is a little bit more complicated.
- Code to actually Base64-encode strings to be executed as
JavaScript when expected is now present in wasmapp.cpp. (After
being passed through the Base64ToArrayBuffer function on the JS
side.) Whether this is actually necessary is not fully clear, but
to keep the code similar to that in the GTK, iOS, and Android
apps, this is kept as such for now. It would probably work fine to
just directly create the ArrayBuffer in the C++ (using the EM_ASM
magic).
- The COOLWSD::run() function is now run in a separate thread so
that main() can return.
- The FakeWebSocket's onopen() function is now called from
innerMain(), where the HULLO message is sent. It remains a bit
unclear if this really is the ideal place.
In the mobile apps the HULLO message is sent and the onopen()
function is called in the window.socket.onopen() function in
global.js.
But note that despite that the WASM app and the mobile apps are
largely quite similarly constructed and the FakeSocket and
FakeWebSocket plumbing is the same, there is an important
difference. In a mobile app the C++ code is what runs first, and
that then loads the HTML page into WebKit, in which the JS
runs. In the WASM app it is the other way around. The web page is
naturaly the one that is loaded and the JS code then starts
running the C++ code as WASM.
Finally, note that the whole concept that there is a separate "WASM
app" is temporary.
What we eventually want to achieve is that the COOL webpage upon
loading will connect a COOL server. As it does currently. The COOL
server runs the online and core C++ code to load a document, and
renders document tiles and sends those to the client JS code to
dispay.
The new thing will be that, if enabled, in addition to the HTML and JS
resources, the client will also download the WASM code and data
resources. Also, the document and updates to it will be downloaded
while being edited so that a copy can be kept in client memory. But
the WASM code and the downloaded document will remain unused most of
the time. Only if the connection to the COOL server breaks will the JS
start running the WASM code and the JS will talk to online code
running locally as WASM instead of to a COOL server. Obviously there
are still lots of things hanging in the air here regarding how exactly
this will work.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Ib1786a0b485d51797b0f2302d4296aa1ff9df5c1
After my shortly upcoming commits the document gets loaded and its
tiles displayed by the code that normally does that. No need to
separately verify that loading a document works.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Id5883f36644b5e9b79c3f80ea2131e9f35823b2f
Pass the absolute pathname to directory that contains a tree of additional
files you want to be available in the WASM in-memory file system. Relevant
only if you build for WASM with Emscripten, i.e. with
--host=wasm32-local-emscripten.
(This is not usable without my still uncommitted / unpushed WIP
hacking.)
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I97a4651bed89bf35c50b009e04ddaa3e03aa8006
(Note that the existence of a window.ThisIsTheEmscriptenApp property
is also a temporary hack; the eventual goal is for a one same Online
webpage to be able to switch automatically from server-based to
WASM-based and back based on connectivity to the server.)
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Ia5e3f4008eaaf1543c08482418635dca0d3983e5
Signed-off-by: Tor Lillqvist <tml@collabora.com>
When we click empty part of navbar or notebookbar bar, focus
should be on sheet. There are some wide containers
(eg document title) and they looking like empty area. Clicking
there makes lost the focus. Here we add aditional conditions
to check if user cliked that empty looking areas.
Without this patch, focus is on browser itself and CTRL+S
saves the HTML instead of current document.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I3a94c2d66dc093475e6674543b36b2c6905df2c0
When uploading fails, we shouldn't
rely on another save or close to
happen, we should retry as soon as
possible (right after the
min_time_between_uploads_ms elapses).
Change-Id: Ieabe7656583cf391f637986f5403acc87bdc913f
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Forced uploading is used to overwrite the
file in storage. This is useful when there
is a conflict. Only the user can decide to
do (or not do) that. As such, no auto-save
or any other case should force an upload.
The issue is that we can clobber a conflicted
version in storage by accident. Forced upload
was used for always_exit_on_save=true setting,
which wasn't really needed as the feature isn't
to forcefully upload, rather to just save and
upload as necessary.
Change-Id: Ie46f38f76392493fe8f8112f05953899963da99b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We never enter the condition in question
if !_documentChangedInStorage, so the
code removed could never execute.
Change-Id: Ia183b63d7a13f6316eb5f24636997b6e6e417a97
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is necessary for multi-test scenarios
where the flag might be changed between tests.
Change-Id: I2fd9c21bc7ccdf2c9941ca3a959b578ec226facc
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
No reason to consider the 'exit' command
unexpected or a cause for error, so the
process exit code needs not be anything
but 0.
Change-Id: I352f706c6f174b66e9a4814fc35bb95b1a3bf3d6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
There was a race between the closedocument
command and the save command that caused
occassional random failures.
Change-Id: I9e0e71545bab586826273fdb6e160b624be91dbe
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Another failure-to-upload test that best
belongs to the UnitWOPIFailUpload suite.
Change-Id: I48f34413337f34a959a38402409e7321203dff35
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
There is an element displayed as a column before ratio
and we then hide it which is fine but, when ratio label
becomes to lengthly (Seitenverhältnis beibehalten) it then
gets cropped due to lack of space.
- Make it span across columns
- Do not align to the end
- Remove left margin from checkbox
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I02ec7a608c0b330a52fa70db3b453fe04fefa805
Apparently handle_cool_message() gets called from a web worker thread
and then using emscripten_run_script() in wasmapp.cpp to run a JS
snippet that refers to the 'window' variable will not work. That
variable exists only in the main thread. So use MAIN_THREAD_EM_ASM()
instead.
Hardcode the document URL for now also in wasmapp.cpp.
Try to send the HULLO message from COOLWSD::innerMain().
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Ic48042c6d0c6239a3b82e74f0565056a15f3d98d
After rework to grouped download as and also export
entry fro PDF and EPUB - these formats were not included.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I91e5b25823017a3164fef2b63b2552e9893cf0b0
The default would be std:🧵:hardware_concurrency() which can be
ridiculously high for the WASM case.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I77902a58b96248d7afe638a039886712516fe905
If we are not caching tiles, it is misleading to log "Saved cache tile".
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I0e0ec446d5edf266ea4acb42883c49d5f7063763
In some languages (de) some labels were being shifted and ultimately
cropped due to their length. Example: Using German; selecting an image
-> the 'Seitenverhältnis beibehalten' was being cropped
Remove padding for those labels when on the sidebar
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4097268682a1890543c9d2a8107e621ea15335c9
sections are used to represent bibliography when citations are used as refmark
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I4094cf053cb3fe1c86eb7f7f0a95816fb51fa8c7
This replaces the hard-coded status-code
numbers with named compile-time constants.
Change-Id: Ibe678fb2c533b29efd696e4430f5377523eeb298
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
fixed regression: user was note able to insert any citations as bookmark
This also reduces number of queries to find the citations under the cursor
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I40148e61a0109e5a807b50ea0121ab623bc41e4d
Before this commit, on chrome/mium, menus such as
image or save as in the tabbed view (and with the browser zoom
set to bellow 80%) were being displayed with scrollbars.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id32e86229fe5d7aad293d24a20c9bfa555fbe78b
Currently translated at 100.0% (457 of 457 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (509 of 509 strings)
Co-authored-by: Stanislav Horáček <stanislav.horacek@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/cs/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/cs/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I3c4e879c7307644347f144da774c6e9f1d2e551a
Currently translated at 100.0% (457 of 457 strings)
Translated using Weblate (Slovenian)
Currently translated at 100.0% (509 of 509 strings)
Co-authored-by: Martin Srebotnjak <miles@filmsi.net>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/sl/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/sl/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I847782a221a6646867333dd41b1c5703565aa4a6
Currently translated at 100.0% (457 of 457 strings)
Translated using Weblate (Indonesian)
Currently translated at 75.9% (347 of 457 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (509 of 509 strings)
Co-authored-by: Andika Triwidada <andika@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/id/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/id/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib7b3ed5b6cfd8844e685d413ad948cf2b57c3bd0
Currently translated at 100.0% (457 of 457 strings)
Translated using Weblate (French)
Currently translated at 100.0% (509 of 509 strings)
Co-authored-by: William Gathoye <william+weblate@gathoye.be>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/fr/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/fr/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I6b4a4a3b271b94e0ca075ac6c419f44d5d32ea20
This is a failure-to-upload test that best
belongs to the UnitWOPIFailUpload suite.
Change-Id: I28e4e55f8298fe964537f8b67b0e717ecf2e3935
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
During unit-tests, it is safe to break the flushing sooner
to reduce the wait time. However, this is risky when
flushing the sockets outside of tests, because there
could still be some important processing happening.
In that case, it's best to wait for the full duration
of the flushing.
Change-Id: I4841510f4e80c3e5bd13b203647828e4c5f89d4d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now upload 3 times to succeed.
This simulates a user modifying and saving
twice before giving up and closing the
document, which succeeds in uploading.
Change-Id: Ida40f79a76fc94436c0d4b4fc1ad3e7b7acc997b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The BaseUnit test didn't belong to UnitTimeout
and, more important, it needed access to
private members to both validate their state
and to reset them (since the test is artificially
initializing both WSD and Kit tests and cannot
uninitialize them, lest we unload ourselves).
As such, the self-test is now internal to
BaseUnit, with the added bonus that it
is called on all tests and not just UnitTimeout.
Also, more assertions have been added.
Change-Id: Ieaf60594f39e978a7250407262bd8bbc9b642c43
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Handler assignment is moved to container's function.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: Ic0a36273ab223ad810444abb5e6fa035d9e9576f
Sometimes there other controls other than buttons inside a button box, so use object.type instead of pushbutton directly.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I88441f6282f961a7b7999430538cd613ce8b60e1
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Java & beanshell macros are unlikely to work, since they would
require a JVM in the Kit process.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I390fb66d7aa835530dd7d2210fd8e1e89cdba325
Reason: it exposes a large and complicated dialog from core that we
do not want to see in Online.
This reverts commit 1da779a2bc.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I78845328372e639e7c48604e990b73059a9e3995
Currently translated at 99.8% (505 of 506 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 99.8% (505 of 506 strings)
Co-authored-by: Rob Pearson <rob.dunedin@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/en_GB/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/en_ZA/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I54408ef2331844ca5f45b098cff5cdf01c9be428
Primary buttons, secondary buttons and others are getting styled
differently for the same 'disabled' status. Plus, they are react
on hover which can lead the user to wrongly think they are active.
- Fix inconsistencies and make it clear that they are all disabled
Example dialog: Find and replace
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I45be52ecda264d0af9a53a70c222d1047a3cdf73
Before this commit, the text in a dropdown could be overlapped by the
triangle (arrow). Example: Insert > Page number dialog
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I770acb10b89239bce280cf44ad56b9ec2c3a8264
it confuses our selectors for focus widgets when
widget is hidden. unfortunately this property was
added to the inner node not top one so we don't see
.hidden class. listbox doesn't need tabindex at all
so just remove it
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0d596bf37750cd4761d61f249db0c8c398f7bf16
Similar to LokDialog _onDialogClose, after the closing a JSDialog we
should change the focus editor again.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I348ead91838703590d5b9753d6028ff7f70f6111
Merge downloadas-pdf and exportpdf actions to have same functionality
on desktop and mobile view. Now we can see setup dialog on mobile view.
On mobide view Download as -> PDF should show PDF download
settings dialog before downloading the document same like
desktop view.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Ib0dd3877973dae025e7a6d4f15f2fa26351ea369
Merge downloadas-epub and exportepub actions to have same functionality
on desktop and mobile view. Now we can see setup dialog on mobile view.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Iebe05e65f331de6737be88288fac34244cfcde18
we already have selected existing entries in the dialog
so just use pending items directly
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ibc9bf10c0a2815c2c9132100ec1beb254f42b3af
- when api key is incorrect - show snackbar
- when api key is empty but set - integrator has feature implemented
so don't show our warnings about empty API key
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I62aaedc5a8c2033050b97db4c7e1ca1f629a10b0
Add button that opens the page number wizard in the Writer notebook bar
Signed-off-by: Paris Oplopoios <paris.oplopoios@collabora.com>
Change-Id: I108b5cb014f162a243af7d61f6ed045834ff32d0
Also fix TS eslint issues in this file.
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Change-Id: I493ae8b8dc9351fe6aedb3407f78b60379173b5d
The logic is simplified by not having to maintain redundant states for
x2, y2, area and rounded versions of all variables. Here they are
automatically calculated by using getters.
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Change-Id: I0125c74d06bceaa69896029ce85c6437ffd3d0dc
Before this patch the section types were not used outside of
CanvasSectionContainer.ts and new sections were created by using objects
that looked like CanvasSectionObject.
Let us take advantage of typescript type checks by using
CanvasSectionObject class as the base class for all sections added using
addSection().
To make this happen we need to separate callbacks from member functions
of CanvasSectionObject class because typescript does not treat them as
same.
TODO: Other non-typescript sections need to be converted by follow-up patches.
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Change-Id: Ieeac168b6a4f82a0d55accd88a07708bf9da2587
Helps in the hopefully rare cases where you need to see what code some
error message points to. Otherwise bundle.js will have extremely long
lines, and many editors have a hard time with such. (For example: Line
1, column 2949562.)
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I229814e985348e94c8cda2d88b77ad1ea4b74ae7
Add also notification once they are unlinked
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id26f7228f5a845b79f941256738a0d83bd12e43f
Currently translated at 99.7% (478 of 479 strings)
Co-authored-by: Flavio F. M <flavius_androiduser@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt_BR/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I9b14ed8c7ce1ed059206431c72ebff801ed176da
Also, don't load online.js. It seems that it will be loaded into the
JS "web worker" for each thread automatically by
online.worker.js. (But hmm, what loads online.worker.js? I am probably
completely confused here. Probably getting rid of Qt things
(qtloader.js) and using only JS that Emscripten produces (modified if
necessary) will make things simpler to understand.)
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I050a20a553b7c0f6ebe9db0e7cb9cab2f9829f9e
Even if the URL did not have a query parameter called "lang".
And yes, we should stop using String.locale for that, and instead add
our locale property to window.app, which seems to be the place for our
code to store various global state. Using String.locale is hugely
confusing. I naturally thought it was some built-in JavaScript thing
and was very confused when it was undefined and I couldn't find any
documentation on it.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I549d3dac1be0991f87f1ca3aa3f147b081e898b1
As we build a single statically linked bunary for WASM, we will end up
with just one copy of each function in it. Both LO core and Poco
include expat. Upstream Poco builds one of the expat source files as
C++. That causes trouble as it then isn't compatible with what LO core
wants to call. Or something like that. You get "RuntimeError: null
function or function signature mismatch". (The "signature" concept in
WASM is orthogonal to C++ name mangling.)
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Iacf75ed34eea98611cb6aa6867e460697ea1fc4a
This revealed some interestring problems related to expat, static
linking, and how expat was built in Poco.
Don't bother saving the document, though.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I6715beb46ad6c4854ffc8aff6a26419c05727ae7
Obviously just this is not a good reason to involve Qt, but we want
now initially to get something to even show up, so let's start by
using HTML and from the Qt-based WASM-LibreOffice. Let's see.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I7841fce8e5680a983cc00d516c3fca3a6747e9dc
now refmarks support to cite multiple sources at a place
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I07639bbc7206dd69a604b7aeabe4cf1a6fea5ca3
now bookmark support to cite multiple sources at a place
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Iafc65224d35ff6af5bcae09988567901ffd64dbc
now fieldmarks support to cite multiple sources at a place
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Iea3b6f7bee208d0a7c01780ec5b837d7f1042b4d
- allow reading bibliography properties on load without api key
- if fieldType is missing - use default
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic4ece4b4d61032a29f03cf57852cbdf6694a5294
Another method is used for Calc while scrolling.
Remove unnecessary call to draw in control.header.js
Add condition for draw calls while scrolling on desktop view. Scroll bar is visible by default on desktop.
Remove commented-out code.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: Iaaa0267c63a9a92aa67786231baf53a625541440
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
If the welcome dialog will be shown we postpone showing missing font
dialog to user.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Ie19a81588873842f92f4d482c14f07f112b1bcc3
Before this commit dialogs such as hyperlink leave editor warning
or fontmissing didn't have a title
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Icded55a489dbfebc2fb7e12fe0b04da70938a416
Before this commit it, it was impossible to:
- Dismiss the dialog by clicking anywhere else
- Dismiss when using mobile (it blocked both editing and reading)
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I3caeef327e653a054994fb01e8e53c5023c20055
It sends post message to the integrator: UI_ZoteroKeyMissing
if API key was not provided in CheckFileInfo and user tried
to perform any action on bibliography
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia7d04cbdd337d989e33bd4e1500efe113131a326
renumber the identification number in bibliography to match the citation number
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ic1eec6044e45c2b24aff1f9127fdb13cdab97313
No need to start a separate thread to run it, like in the gtk+
"mobile" app, I think.
Also no need for a cleanup function, I think.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I23e94200047a195b7fecbdf370142daebc3df55c
We want the code to go further and not stop right away.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Id285f119dde0894cda59b68ebd02a9f6b0e2fbee
Just 4 is very likely not nearly enough. I think I did see some error
that could be related to running out of threads. Does
PTHREAD_POOL_SIZE limit how many threads can exist simultaneously?
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I5da637b5660e89655f7049b6754f70c74dff6da2
Also using soffice.data name instead online.data: online.js
looking for soffice.data
Signed-off-by: Balázs Varga (allotropia) <balazs.varga.extern@allotropia.de>
Change-Id: I62cee3f4866a2824a08b472f15bcdec06a6407b9
* add dependency on soffice.html.linkdeps to rebuild if core was rebuilt
* copy needed data files as-is from core build
* rename executable by setting automake EXEEXT var - appears to work
Signed-off-by: Michael Stahl <michael.stahl@allotropia.de>
Change-Id: I458b49290dae9d621a8043b1b3103d8b8fd606b8
Only once we have that working will we go back to having a COOL client
that on the fly can switch from a normal COOL server to using local
online and core code in WASM.
Note that the --with-wasm-fallback configure option now then
temporarily is a no-op, and the ENABLE_WASM_FALLBACK Automake
conditional and WASM_BUILDDIR Autoconf macro are not used anywhere.
Once we have something that barely works as a proof of concept, we can
go back to working towards what we really want.
(Yeah, yeah, I know that "temporary" solutions have a tendency to
become more permanent than you expect...)
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I2f01acd418686e672fd9d2e12cbbd688b128dfa5
In the C++ code we can check for __EMSCRIPTEN__ to know whether we are
being compiled for WASM. In JS and HTML there is no separate WASM or
Emscripten version, but the same code should be able to switch between
talking to a normal COOL server and talking to local WASM code running
in the browser.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: If87245aa26fb1b10f6da2e3894605a8ab2e0aced
There is no "Emscripten app", but a COOL client that additionally can
fall back to using in-client WASM code instead of a COOL server.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I86517c6a8f6e0397f6c466278c7be19db001e6d8
This is how I imagine that this stuff should work:
- In one tree you build with --host=wasm32-local-emscripten. This
results in only the WASM binary being built, containing C++ code
from Collabora Office core and C++ code from Online (to a similar
extent as in the iOS, Android, and gtk apps). No HTML and JS for the
client's browser is produced in this tree. The embedded filesystem
from the corresponding WASM core build could be copied into this
tree for use as below. (Or, alternatively the build in the other
tree could look into the config.status file in this tree to figure
out where to pick up the embedded fs data file.)
- In another tree you build with --with-wasm-fallback=<path to the
above WASM tree>. Note that the C++ code will be built normally in
this case, for Linux. This build results in an otherwise normal COOL
build, with the added feature that the COOL server sends the whole
document file also to the COOL client whenever it is saved. The HTML
and JS browser code will have code that enables receiving the
document in this case, plus incremental updates to the document (if
possible), and code to detect that the connection to the COOL server
is broken and then fall back to using the local WASM in the
browser. Obviously the WASM binary and related JS and other data
(like the embedded file system from core) will have to be downloaded
into the client right at the start, to be present if the connection
breaks, but the WASM will likely not need to be started until
needed.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I945c93451d3f5f0b1bc6ad8550da64e8e6453b6b
Use this when building an otherwise "normal" COOL to indicate that the
client will be able to fall back to a local WASM binary in the browser
containing the necessary core and online code.
The value of the option should be the folder where the corresponding
WASM build of COOL was done.
This commit only adds the option.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I1a8c3eb1518cadb12b4159af14f4dd9dfd95a5bd
I can only assume that recent LOK's often don't have any lingering
timeouts for cursor blinking or whatever, such that we get an
infinite wait passed as a negative microseconds-count.
Best not to interpret that as a zero wait to avoid a busy loop.
Change-Id: If79228af969f4598f07681deb355c72f72602d19
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
with the introduction of showModal:
https://github.com/CollaboraOnline/online/pull/5518 we now have
a type of a dialog that, without this commit, can grow without
limits and can be as small as its content which is not ideal.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I8768925377606924fd70fab8be40b0b755d802ac
While avoiding to add extra space to first elements
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia4102a783525e801e3adcd7dd8b621bb10ff2eb3
When ok is enabled and style selected - just use it
When style wasn't selected in the pase - ok is not enabled
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2f36dd967e44dfdaf5210f030521fb6c1ec6ecf5
online stores keys as item id,
but other softewares use numbers for id and no other fields store keys.
keys are required in order to fetch the data from API.
So extract the item key from item URL
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ib2d25df81f975d0e926627408047b79c624394fb
style settings were treated as html instead of xml,
which caused attributes to lose its camelCase naming,
due to which some attributes were unrecognised and caused regression
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I34f211c54f9692ec67e08a872a68f516b1f82944
it reads citation style and shows only available languages
if last used locale is available - use it
if not - use default defined by style
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I7539ffeb3942d3a1f8b44c5a17b69b4b4b9b475c
In case of desktop browser window whose size is only a little bigger
than the page, our native comments get collapsed and we use vex. In this
case don't close the comment dialog on clicking outside the dialog or
when switching browser tabs.
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Change-Id: I92c9d800d58a6910d6df01371e6748c864641cff
This reverts commit 089b6d235a0e38d5b1d021fab024becc2def0ada.
Reason for revert: For packaging builds the global.js is in minified
form hence marker comments are not present and it is difficult to
extract the css url renamer function without js-language analysis tools
or packages - this needs more thought.
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Change-Id: I86755cd74c8f92105b157477f7da8f6e439f1f99
if bibliography already exists, update existing and avoid inserting a new copy
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ief742a5c18d2cc9acd9fb14d5c3545bc7fcaa4da
Before this commit, when opening a document with citations,
citations would be updated and the document refreshed but without
any information of what is happening
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I474e8cdf9c31e18027501ebfc9bd6dd2f55a58a5
On Windows firefox auto setting is not handled properly. Scrollbar
flows on the sidebar elements. We use thin instead.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Ife27f461639e6b034ac9071624d628cd35709191
The LO build directory in question needs to be one separately
configured for this (not one that would use Qt5 for UI, for instance),
so in the long run perhaps it does not make sense to create the FS
image there in core, but we should do it here in online? And we will
surely need additional files in the fs image anyway that core knows
nothing about.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I2cff0421da6075eefc017603ddf9d2ecf9dc79e2
It is called from JavaScript with one parameter, the string containing
the message to be sent to the Online C++ code. (See
browser/html/cool.html.m4.) It is not called from the mobile app glue
code.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I893dfff3b7d2dbfe4bd48393e58a8c6bfc6e2931
Include emsripten headers and init some variables for later.
Signed-off-by: Balázs Varga (allotropia) <balazs.varga.extern@allotropia.de>
Change-Id: Ic2c8228d44a60b25ae495a2e9d75c10160161f11
Also feature/wasm rebased with online master.
Signed-off-by: Balázs Varga (allotropia) <balazs.varga.extern@allotropia.de>
Change-Id: I1ecba4091c22878aacc3d6033ad350b0aa2276dc
The WASM C++ bits (in wasm/wasmapp.cpp) will have to export functions
hande_cool_message(), handle_error_message(), and
handle_debug_message() to receive the calls from JS.
Change-Id: Ic7f2cffdeb4408a9f726ad70a8ceb8db372787dd
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Remove the dumb hard-coded home dir and add a section how to use the
pre-built dependencies from the container.
Signed-off-by: Michael Stahl <michael.stahl@allotropia.de>
Change-Id: Ibdc8d766be54dcde440682d2c77fb47f042f6056
-pthreads is required, or wasm-ld reports errors about
"was not compiled with 'atomics' or 'bulk-memory' features"
Also, POCO needs to be built with this, add it in README.
Signed-off-by: Michael Stahl <michael.stahl@allotropia.de>
Change-Id: Ie83e3942e5fc689e6df5a5a705d7ee2e1325ce03
Use the newly introduced soffice.html.linkdeps from core to get the
recursive dependencies into the link command.
This currently fails due to some problem with POCO:
wasm-ld: error: --shared-memory is disallowed by AtomicCounter.o because it was not compiled with 'atomics' or 'bulk-memory' features.
Signed-off-by: Michael Stahl <michael.stahl@allotropia.de>
Change-Id: I76b0a2265f67e89f6992d556525f1263ad1b45db
Emscripten is very opinionated about sys/poll.h so use poll.h instead.
Signed-off-by: Michael Stahl <michael.stahl@allotropia.de>
Change-Id: I9691519e27a080f03a19f0cc0dd8f796fe323062
Before this table columns were getting "glued" (content of one
col would end and immediately would start content of another col).
Plus, we were having table content normally aligned to th start
while headers were being centered aligned
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ie0908c26d1e7bedc37b3c5d768d941b091946524
Copy the list of .cpp files from the Android project, assuming this will
be similar in scope.
Signed-off-by: Michael Stahl <michael.stahl@allotropia.de>
Change-Id: I57c7ad2f10d1867307ff4fcea3d0c650726d18d8
These have no effect on the ui-expander-content since they
are set to display: block somewhere else (jsdialogs.css)
plus, (and even testing with flex) this does not seem to improve
or fix anything
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I0260f44413ff46f79b9ea6a15e154ee62fb1e53f
This commit was initially intended to affect sidebar but it is
affecting every toolbox (dialogs, formula bar) causing regression
in the formula bar buttons
This reverts commit c0302a8d93.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ie872d26ec7dcfb396c7ccba13dcbf6142655be7a
Before this commit, browsers such as chrome (without enabling
experimental features) were not supporting those float values
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I2530e7bf46d161ac980559c181a4e03947edbeee
now odf documents will by default use refmarks,
MS docs will use field marks by default
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I57ef5de9bef8d1e5f6b5029e478d9a43e38dbc4d
The cursor should minimally obscure the cell content - so the border
should go outside and over the cell border, and the white contrast
line inside it.
Similarly the autofill handle should not obscure the number in the
cell you're trying to read - so move it out and down to a more
familiar position, shrink the size somewhat, and correct the
white boarders around it too.
Change-Id: Ib107adc2927172d69b8cd9a6523b50327d4f81cb
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Note that the code changed is inside an anonymous function that is
called with one argument: window, for the function parameter called
global. Thus the assignment that this change removes sets
window.socket.
The window.socket variable is not used by code later, so this change
can be this minimal.
The window.socket variable has earlier been set to the WebSocket
object used to communicate with the COOL server. Let's keep it for
that purpose. app.socket is the app.definitions.Socket object. Even
though JavaScript is not type-safe, it is very confusing to use the
same variable for completely different object types at different
stages in the code execution. I am working on some new code that will
want to access the WebSocket object also later.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I6273a6d6acee3fa46ab9fedc5742ae44c8bfa567
Also, no reason to append a null byte to it.
Don't know why this worked even when not escaping "dangerous"
characters. Does Webkit have a more relaxed lexical analyser?
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Idfedcbf11a9ee565b954ba972e7e3bc9b804a122
Commit introduces the following capabilities:
1. Users can now change the style and the existing citations will respond to it and update
2. Citations numbers are handled
3. Citation clusters(multiple citations) can be read and handled now
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I1e7d85ab955db49bf962303f3b6a0471b37e6ae7
fetching selected style language details will allow us to make adjustments to citation texts
this is particularly helpful in handling citation numbers and citation clusters
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ia469e0e44fc0550c083ce572f8fe9f512947a1f4
it will be used to store user data which shouldn't
be shared between views
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I58b7f22e4364ce9e07bb6cc74e8431363912a872
On every build, nodejs (v12.22.9 for me) re-sorts
the packages in package.json. I expect this is
the case for everyone, so best to commit it
sorted.
Change-Id: Ifa69989ae1bee0fda5a9cc19c2215db92959a434
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Remove citation search label and instead use placeholder
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I0eef0cd9321babd7239b18b4fd5a422cc4d09831
Move refresh button under a buttonbox so it can automatically inherit
container's offset
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I405eddc56ab806b33404221f64255ea676240134
Do not set sub container with a margin. This was resulting in
some elements (that are inside of that container) to be properly
contained but all the rest were being set without any surrounding
margins -> leading to misalignment
- Main jsdialog container shouldn't inherit lokdialog padding 0
- We do not need to specifically set `padding: .5em 1 em` because it
- has been already set and inherit from jquery ui CSS rules
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I957c93c099692a5bd202248731b16bc6bf358234
Fixes the misalignment, before this commit: the safe margin
present in every button was correct but for the cases where
the button is placed to the further left or further right
edge of the dialog -> it looked misaligned
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ibadeaf6cf736b07229d60f99b5af72865f26e23f
I had added some extra debugging output to the !MOBILEAPP branch to
log values of timeoutMaxMicroS and timeoutMaxMS and was wondering why
I saw things like:
timeoutMaxMicroS=5000000 timeoutMaxMS=5009
and
timeoutMaxMicroS=0 timeoutMaxMS=9
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Iac8599ce5b00ef90d62eabc29c5d92858e276bb6
There was a bug in the core with duplicated filds, also
we can use original numeric argument to pass colori (tdf#150339).
Let's don't use string color so we can remove that
from the core in the future.
Related core commit: https://gerrit.libreoffice.org/c/core/+/144866
Resolves: tdf#150339 two arguments called "Color"
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I880552b7af4408e568db878dc862e548e901124d
if command "None" and empty item text, there is
an unhandled exception, and no grammar suggestions are shown.
Change-Id: Ie2c832a2a3ff7fe9944024fa003370819b16a432
Signed-off-by: Henry Castro <hcastro@collabora.com>
user was allowed to select language without selecting the style,
if style is not selected language data will also be not written in the doc.
force user to select style too if want to set the language.
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ie323b19189858e601f3fa979d747d7c688e4baf1
- now works with default configuration
- updated readme
- fixed unknown field "spec.terminationGracePeriodSeconds" in deployment.yaml
error. This field should be defined in pod spec not in deployment spec
- improved how aliasgroups are defined in helm chart
- change default to kubernetes "Deployment" instead of "StatefulSet"
- added support for kubernetes hostAliases
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ief1e2b3f0ea130425853babbd28462d48e50280f
some style may differ in languages
i.e: in APA style a citation may appears as (Abrikosov, n.d.) like "no date". When I switch language to Hungarian, it becomes (Abrikosov, é. n.) like "évszám nélkül".
language can be selected in document preference dialog
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ida1cd91b189fc468e0205e9f1e332238f3ebbe7b
It seems we were inadvertently clearing copies
of the stream caches rather than the real ones.
Change-Id: I3fcce77850e0a8f082bdb926f85ab173148c15db
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
following the standerd zotero convention, reason is unknown
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ie7d3167906cdce7be22dc9a201d6a1d20e880a2c
WSD_CMD already wakes up the poll threads, so
there is no need to do so again.
Change-Id: If67df1a704582a5ecf321f089c43d0249a2546ff
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Apparently it woke up the world unnecessarily.
Change-Id: Iad65215da898b017860e7d7b803771f657a3e1ab
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
When shutting down, SocketPoll threads asynchronously
stop and exit. This fundamental race means the warning
is useless and noisy.
Change-Id: I3ca9044c9a68689abb7e8f692fffd10509eadab6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
ClientSession::disconnectFromKit() already sends
a 'disconnect' message to the Kit. There is no
point in sending the same message again right
after calling disconnectFromKit().
Change-Id: I03aafc33f85220b53c5ff024601f83132b7046f6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
DocBroker now requests the Kit process to terminate
earlier than before to give it time to disconnect
while we (DocBroker) are still around. In turn,
upon disconnection, PrisonerRequestDispatcher can
query whether we are unloading or not, to detect
unexpected disconnections.
Change-Id: Ifa102e018e32bb252a0c169b0a3df691bca4ab0c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We avoid logging warnings when the Kit disconnects
from a DocBroker that is unloading.
Also, since the PrisonerRequestDispatcher is the
default WebSocketHandler, for ForKit we replace it
before it gets a DocBroker associated with it.
When replacing (which deletes the instance) we
no longer complain that we are disconnecting an
unknown DocBroker.
Change-Id: I94c3aec8578c66c50623196087c4cd157ba85c27
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
sendCloseFrame does check for the socket to be
there, but it logs an error if it isn't because
it assumes we expect to have a socket.
Since we are shutting down, this code could
be triggered on destruction when we no
longer have the socket.
Change-Id: I622a24394632159aa71c1c21c33c0f8a2d5c6250
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
It seems we were always pinging immediately on a
newly created WebSocket, even before upgrading to
WS, which logged a warning. That was because we
create the WebSocketHandler instance with a
timed-out lastPingSentTime.
Here we correctly set lastPingSentTime such that
it times out *after* InitialPingDelayMicroS has
elapsed. This gives it time to upgrade the
socket to WS and avoid the warning.
Change-Id: I6004348b9b4bd29f614d9e010fb7649da2bca338
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We no longer emit a fatal (FTL) log when
forced-exiting successfully.
Also, improved are some other logs to
better reflect the severity of the issue.
Change-Id: I22e79f685825f7ecd47cec76c9be9683deff2d55
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
If we already have a closeReason, we should preserve
it upon disconnecting from the Kit instance. For
example when unloading, we request the disconnection
ourselves, so no need to clobber the real reason
for closing in that case.
Change-Id: Ie71faed5a4051659b426e3ba6bbf30950d21c328
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
At the end of the test we validate getting
the clipboard contents after disconnecting
and unloading the document. Unfortunately,
this relied on the speed at which unloading
happened.
Now we wait for the document to unload,
via the callback, before proceeding.
This makes the test more reliable and
harder to pass accidentally.
Change-Id: I4b7f4483c6827dc56689f739ec41a197759413f1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
It tries to bring up formula bar, which is unsupported,
and causes issues.
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I9aaf445fde9ed5fa507e503e72319b6c7a146e44
in the future we can make icons different for every type
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I039f412e9d89b08b86ef9fe0b45bc868343de122
The code that is conditionally called based on that check verifies
using ThisIsAMobileApp anyway.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Ic86cf102e061d90bedecb6efcb4ef171dc494004
To switch to edit mode in a cell, firstly we have to select a cell.
During that selection Clipboard (here _clip object) has a context
normally. When we do double click to switch edit mode, that selection
should be invalidated because actually we don't select anything yet
in that case.
Here we clean the selection when we switch to edit mode.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Ib8d5bedba3a6d9c05a26a73edd81b52cd94e3358
To show a checkmark for "Freeze Rows and Columns" item on hamburger menu,
we have to set "checked" propery of the item according to uno command's
status.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Icfc2ac07a84ed8a843b3bb8b2fe4c75de8ad9233
exclude notes, full text and snapshot entries
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib2183d95c4b0f90d3fd80504625f989ccafe3fb9
This creates the scenarios where the
storage is read-only (i.e. UserCanWrite=false)
and we have an editable document.
Change-Id: I2878e5e27bc3c3a809dde16f7c39a5ccda4a35a3
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This ensures that when the Storage has
UserCanWrite=false no editing can happen,
no new versions could be saved, and no
attempts to upload would happen, even
on view-only documents (by means of
allowing comments).
When the Storage has disabled writes for
the current user/document, we override
the read-only and allow-change-comments
flags.
Change-Id: Ic140fab4f76209fb143f3f5edef70bc3c80cad1b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We need to differentiate between a document
that cannot be edited (due to permissions)
and Storage being read-only.
The distinction isn't always important,
except when readonly is set either by
the client side permissions, or is due
to opening a view-only document (such as
a PDF). Since for a view-only document,
adding and editing comments might be
allowed, while the document is read-only
and cannot be otherwise edited, we
still need to upload it to storage.
This is to preserve the changes done
to comments.
Since we need to differentiate between
read-only Storage vs the above cases,
we use a new flag in Session: isWritable.
Change-Id: I028e7908db7f0f10e5407a45c71d89aaab858390
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This helper is only true if editing of the document
is enabled and not whether or not the document is
writable in storage. Since it unifies isReadOnly
and isAllowChangeComments, which are in Session,
there is no advantage in having it in ClientSession.
It is now renamed to isEditable in Session.
Change-Id: Ib923b6162a8075be145049bc1442c42479c8ce4b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We should always set the read-only flag when
the storage disables writing for the doc/user.
Similarly when the user is locked.
This breaks down the logic of setting these
two flags such that it's explicit and more
readable.
Change-Id: I99ea19b85a529c08fa50b91fb73bffcfba47f996
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Currently translated at 100.0% (479 of 479 strings)
Translated using Weblate (Croatian)
Currently translated at 99.7% (478 of 479 strings)
Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/hr/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib32b8d001305efaee88744febf628a67d57b3732
This starts cleanup in JSDialogs, we will move
widgets to separate files for easier maintaining.
In the future we will be able to convert single files
to TypeScript
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4ca26bd51f895476a17ba1d54d9cdb684e8c8e2b
use deterministic querySelector to avoid usage of
button from the old window to remove
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I49f7b563666fad614b1f688e80ccb0cdc8d6dcb7
mark as invalidated when this is full update
so we don't change position on any update in the
future
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I90f79937c5a69ccb2ee36cda7860cddcd36e9311
... when it's not in the config file. Follow-up to 53e6bdd62a
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib6a414a3d2d8112255c329f5ef7eedae2901a68b
In some cases we don't really need the full
name of an enum, with the enum as namespace.
For those cases, we now support nameShort
and toStringShort.
Change-Id: Iddd383e15d900bb2d2f3d77e3de6a09470d51b62
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
When finishing the DocBroker poll we also
flush the remaining sockets. This is noisy
if there are no sockets.
Also improves the logs around this logic.
Change-Id: Ife768dbd9db2e201702dcb6d89180fafff5dc16c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
And just disable them when engine is not present
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I6504197f096b4e48d075ee0d631217cb576f4a22
- Move menu entries (that are exclusively related to references)
to References menu
- Add Missing menu entries to References menu so it has 1 to 1
parity with References tab (tabbed view)
- Update text in some menu entries so it follows what has changes
in the tabbed view
- Add separators
Note: Footnote and endnote action were also kept under insert
menu because it seems user are already very used to that. So,
now they can be found both under Insert and References menus
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Icde47f88f60c8423b9af3f6f3793bb8da056adde
There is no reason to print the test name
explicitly when each log entry is already
prefixed by the test name.
Change-Id: I72c0a0f2989a65f477902b97e6be816446fba5c3
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
After failing a test, any assertion will simply
pile-on and add noise. There is little benefit
in seeing assertion failures (and especially
core-dumps) after a test has failed.
This change silently suppresses assertions if
a test has failed already.
Change-Id: I5146f12692c0275579510dfac7ef7b37d5af86d0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Now that we may have multiple tests in a
given Test Suite (i.e. a since unit-test
.so module), it is important to calculate
the timeout not from the total elapsed
time, but form the start of the *current*
test.
To that end, we capture the start time
on the first checkTimeout call, which
gives us the elapsed time from the very
start of the Test Suite. Using this, we
offset the elapsed time to arrive at
the time the current test consumed.
Change-Id: I01ebc3572bc147a3dabac7e1fb3237ea6d479116
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This decodes strings encoded using
encodeURIComponent.
For now, it wraps Poco::URI::decode,
which should be replaced in the future.
Change-Id: I608b327be81aeda37d2afc4dfd29828658e92dc8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Housekeeping assertions in tests can be noisy
and unhelpful. There is little advantage to
logging them on passing as, unlike the
assertions in tests, they don't represent
any particular progress in a given test,
nor are they specific to any test either.
Change-Id: Id1005264b7c75f01c241e36a53f24f2c656406f8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
note: Ideally we would always add the buttons,
but when the extra capabilities are not available we would
switch the trigger for all of those buttons to be a warning
dialog
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I7359fe222eff31920b78116e69b45aa60cb15790
Use keyword citation in multiple buttons so they can be
easily understood and grouped
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4104bdcbb555ee3f4a2b446ad70583e00727cab1
Thus, Remove Zotero dedicated tab and menu
- Add instead to existing references tab
Also remove dedicated top menu (compact)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I8b056ac17fceb0bad2c9a864faeaf3ed2eec8d9d
Also make sure that new menu is only visible if zotero is
available
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I0893515dbc5495aa8251fc9ca795fea357400e6c
Also rename the current testing button (Citation Style) to be used
temporarily as doc pref.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I70c434a42034a1ee0d729e4aa855b37e5d195950
When we have 2 users:
A is typing on the page 0
B is at the bottom of the document
We scrolled view B when page overflow happened what caused
"flickering". This patch prevents us from scrolling when
cursor is still on the screen and visible.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Id8f3a12ba566a4b2fd03bf3ab5aa618f8e00c263
- Prefer to show zotero related actions within a dedicated tab (instead
of adding those within references tab as it was previously). This,
hopefully is more familiar to user using similar interface elsewhere
- Show this new tab conditionally (if zotero is enabled)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I1690295724d54693aca68ade567e9d1076f26876
Avoid using `Current Index` (uno text) and instead set custom
string that is easier to understand
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I5057b7c974a5bd33f8af5b93f5bf6a85af916f98
Messages are high-frequency events and logging
them at debug level is too noisy. Increase the
level to trace.
Debug level should produce legible entries that
outline the main activities, rather than log
each message. That is best done at trace level.
Change-Id: I722ab8b58e0adcab6ecb2f8c571966af0d952051
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
In some cases mounting fails on /tmp, which
should be writable. This results in Poco
exception when trying to write to it during
mounting.
This catches exceptions and fails gracefully
to enable falling back to copying.
Change-Id: I38c8db4f452767ee43bb20a98d13bd5cc36fdba2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
With the latest gcc and Core, debug builds load
and save is substantially slower. The size of
the test document for UnitWOPISlow was 100s
of pages, which took minutes to load and save.
This reduces the size and re-sorts the tests
to minimize the total run time.
Change-Id: Id1ca10d882c5ffcd1ea894279b21fedb06f287f7
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Capture the save result early and log how
long it took to save, for informational
reasons.
Change-Id: I0ca04a5b62a2dda38a058f8fa5ca62df33cc0555
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The autogen.sh script is not supposed to be sourced ("source
autogen.sh"), but run as a command ("./autogen.sh"). After all, it has
the executable bit set. Also, the function called "failed" in it does
an "exit" at the end. That would be a rather rude thing to do as soon
as something goes wrong if the script is sourced.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Ia0e4bbb2b9bed93fb4dba5c0f46a1760ec6e50d7
And move the validation of rename sessionId
where it belongs.
Change-Id: I3fb16ff7b648accaa20b041bf3fd6b82f516cb9b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We mark expired/invalid/rejected authorization
tokens and skip them in the future.
Change-Id: Iec89942198d566901cc2944f22ef86fcb4d6a820
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
LibreOffice has its own solution to handle bibliography. It is outdated, and
reportedly everyone prefers Zotero or similar solutions. Moreover in Online
this feature does not work, because the bibliography database is a file in
the jail that is not retained, and because tunneled dialogs have serious UX
problems.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ibf6195c0265c767b3acf94012ee3f82339cf34d3
The idea is that the integration should look for hasZoteroSupport capability,
and if it's missing or false, then it should not enable setting of the Zotero
API key. Instead, it could write "This instance does not support Zotero, because
the feature is missing." or " ... because the feature is disabled in configuration."
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ibff9cb61ada062f59e8b2b63ddcdb7a9cf899b82
This feature didn't have any visual indicator
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ice0a9f953cbd2028d21f514882b7997d775b7d7a
impress/table_operation_spec.js was failing due to split dialog converting to jsdialog
writer/top_toolbar_spec.js failing due to change in name of clear formatting button
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ia70b80540ebfee66b1499b931c1fc32ab6f9df95
add zotero UI only if user is logged in
when zotero citation edit button is clicked,
fetch the library with zotero API.
Let user select what to insert
at this stage its not a complete solution but just first stage
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Id67d8409bcd6416994713acd9ace495b24823fb0
This fixes a regression where the
per_document.idlesave_duration_secs setting
wasn't effective.
Idle save also takes into account the time
uploading finished, or if we had a recent
save issued. This is particularly helpful
for large documents and/or slow networks
where uploading takes dozens of seconds.
In that case, we don't idle-save too
frequently.
Change-Id: I76ee1869003073b5cf9bd420f610bd8a12ff71b3
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Since UnitBase (and children) are invoked from
different threads, UnitBase::exitTest could
have a race. This ultimately results in
invoking std:🧵:join() concurrently,
which is unsafe. This can result in the
following deadlock.
In this case websrv_poll had invoked
UnitBase::exitTest concurrently and
evidently finished, leaving the main
coolwsd thread deadlocked.
(gdb) info thread
Id Target Id Frame
* 1 Thread 0x7f67528f0840 (LWP 4058508) "coolwsd" __futex_abstimed_wait_common64 (private=128, cancel=true, abstime=0x0, op=265, expected=4058510, futex_word=0x7f675285c910)
at ./nptl/futex-internal.c:57
(gdb) t a a bt
Thread 1 (Thread 0x7f67528f0840 (LWP 4058508) "coolwsd"):
#0 __futex_abstimed_wait_common64 (private=128, cancel=true, abstime=0x0, op=265, expected=4058510, futex_word=0x7f675285c910) at ./nptl/futex-internal.c:57
#1 __futex_abstimed_wait_common (cancel=true, private=128, abstime=0x0, clockid=0, expected=4058510, futex_word=0x7f675285c910) at ./nptl/futex-internal.c:87
#2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7f675285c910, expected=4058510, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=128) at ./nptl/futex-internal.c:139
#3 0x00007f67529cd6a4 in __pthread_clockjoin_ex (threadid=140081742857792, thread_return=0x0, clockid=0, abstime=0x0, block=<optimized out>) at ./nptl/pthread_join_common.c:105
#4 0x00007f6752d42337 in std:🧵:join() () from /lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x000055775c5fa8e0 in SocketPoll::joinThread (this=0x55775cc9b090) at net/Socket.cpp:282
#6 0x000055775c5c8121 in UnitBase::endTest (this=this@entry=0x55775cc0fe80, reason="") at common/Unit.cpp:545
#7 0x00007f67528df61f in UnitWSDClient::endTest (this=0x55775cc0fe80, reason="") at ./UnitWSDClient.hpp:118
#8 0x000055775c5cc4d1 in UnitBase::exitTest (this=0x55775cc0fe80, result=result@entry=UnitBase::TestResult::Ok, reason="") at common/Unit.cpp:486
#9 0x00007f67528d1fa3 in UnitWOPIFileUrl::invokeWSDTest (this=0x55775cc0fe80) at UnitWOPIFileUrl.cpp:269
#10 0x000055775c4accdb in UnitWSD::invokeTest (this=0x55775cc0fe80) at ./common/Unit.hpp:318
#11 0x000055775c4a38cd in COOLWSD::innerMain (this=0x7ffd34248650) at wsd/COOLWSD.cpp:5459
#12 0x000055775c4a59db in COOLWSD::main (this=<optimized out>) at wsd/COOLWSD.cpp:5706
#13 0x00007f6753ab0877 in Poco::Util::Application::run() () from /lib/libPocoUtil.so.80
#14 0x000055775c48316c in main (argc=14, argv=0x7ffd34248898) at wsd/COOLWSD.cpp:5845
Change-Id: If6162690462719f14a35241604f8a59b38a806c0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
These only served to delete the Unit singletons,
but since we have GlobalArray, deleting them
isn't needed.
Change-Id: Ia2e53a1e3b43707196f45c06c38c6bb664c18e29
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The UnitBase reference must be a member of the class.
Change-Id: Ia0b10ccb7f0f3419470f014a23c7a48d3b390239
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is needed so we stop the DocBroker of
the old test, which is now finished.
Change-Id: I05df85fbbeca254928cd9a140198e7f4ae89fec8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- don't print to PDF forms, it's unnecessary, and buggy at the moment,
- don't print/export comments as notes, they aren't relevant.
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I511940f1a97e1c4a6ed6afb87165c9854df56b78
This also allow for one single shared place to have that
"margin"
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iac46810ac4ef219a4103bc315722dbd95e6fd169
We can set those so, the total size is 28px (same as the
grid cell) while keeping svg 16px size this in turn centers
the icon within its parent
Also we can then use the same 5px (that we use for normal button
margin) for the column-gap so everything aligns well
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib13a376fe71e308f9146c291acfbe3a941a4ef57
We now use CSS grid and this rule is now not needed
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I65f5a1d05d0ac748c328c669e99be307c8721f3c
complete new structure of the jssidebar.css file
file is structured into sections
1. general
for general sidebar settings
2. expander section header
ui-expander classes
3. section content
biggest section
define the sidebar gap elements
first column justify-content: start
last column justify-content: end
4. widgets
general staff
4.1 widget width
defined widths
4.2 widget selected
style for
- selected,
- non-selected,
- hover
5. fixes
specific fixes
5.1 writer fixes
5.2 calc fixes
5.3 charts fixes
5.4 not available commands
Signed-off-by: andreas kainz <kainz.a@gmail.com>
Change-Id: Ia449544a671134abebdd4bebd347d20b119c964d
In WebSocketHandler, we often already have
locked the weak_ptr, so we can pass that
shared_ptr around.
Change-Id: Iaedceff0acbfd747bdf89771f9309ff6f6642b53
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This merges the two constructors, since they
overlap and initialize most members identically.
Change-Id: Idd2af580606be92bb5733b1a0f1e1e63b84b6498
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
showModal is going to be replacement for vex
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic339dcb0338a6a15b85b7653e09f5a721e49640b
This avoids an unnecessary lookup in
_sessions, as we already have the
ClientSession instance.
Change-Id: I3dfdfd322fb907f916235a5ccc5f3b76e0eb4855
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The 'load' command is special-cased in the
forwardToChild function. To that end, we
had to parse the message in full, which
is very costly. This patch optimizes
this special casing logic.
Change-Id: I54ff8899b8d250ce996ddabf873a45d92e0f59b1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We dump the state of a DocBroker when we
detect data-loss, or when running a
unit-test that failed.
This simplifies the logic and improves it
by avoiding duplicate dumps and unnecessary
dumps.
Change-Id: I1cf2199d35073a762937ce2cf2377061e40b06b5
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We expected the arguments passed to the save
command to be in a specific order, which is
restritive.
Here we allow for any argument(s) in any order
and omitting any/all of them is acceptable.
Change-Id: Ia582f0ac113b3d987c085d3a7975d1b3054ff889
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- List should be full width
- List should be full height to avoid
double scrollbars
- Options should have dividers in between
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I2a05f1ee5ddf3989a6bf64e81aa3c4a12a4f70dc
Every window has it's own scroll indicator.
Simplified code, based on calculation not hardcoded values.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I48020ca8916139bf168c6a8e3d25e2f9eb684b40
Apparently using a debug=true query parameter breaks tile
rendering. So let's not use that then. Now tiles show up.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Ia458a6bdf35b956bf2570801d132211f600513f6
Now some UI stuff shows up on the cool page. No document tiles yet,
though.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I5cc33cc8df3a700ee752a3ad437cdb3aabfbca86
Visible when using the following core change:
https://gerrit.libreoffice.org/c/core/+/142974
Note: no need to have generic CSS rules for spinfields
only for the sidebar
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id2c9df00d1067537adb9ec5e3db0eab8bd1b2290
introduced in e075241957 commit, update AppConfigMap instead of creating
new one on each of remote_config poll
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: If11bd6e4b3a0a9f4ee32ae9bb43b076479e9bd84
This allows for any hyperlink, no matter how long, to be viewed
before clicking it
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If63d13879758371e96f02b691367952700e0fd87
Increase the max-width from 188 to 150 for the anchor element so,
we don't have the extra space (when the url is short) at the end
of the popup (after the icons)
Fix the overflow and consequent ellipsis: it shouldn't limit/affect
the icons but the anchor (hyperlink)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I2d0f8d2918827bef142f05a483da510d573481d3
Before this commit both mobile and is_lock_readonly (upsell)
were being affected. Namely, the edit buttons was not being
shown for presentations and drawings
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I903ea43ca5ea1c94eec6b8f63b8b5626b8ee2203
When doing save as we reconnect the app to different spreadsheet.
We need to invalidate cursor position and geometry to avoid
showing incorrect selection.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: If2b4e7351b10f2f0c09292301b3ad7565b76630f
This avoids wakeup warning us that the thread is not started to wakeup.
Change-Id: Ifd5c483717024cb1c30521433d0d10acead01e2f
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Previously this defaulted to 'trace' - now it can be configured, but
still defaults to 'trace'.
Change-Id: I0ecf2f0b991cd8cc29dbde866dd4589be4ca7957
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Clang-tidy thinks, incorrectly, that an
assert(false) can be replaced with static_assert.
While the assert(false) in question is a trap
for code paths that shouldn't happen,
static_assert is a compile-time check that
has nothing to do with the execution path.
Since the assert in question is used in a
macro, it shows up countless times where
said macro is used. This silences it.
Change-Id: I19b35da6332a06335cc83b0584505a42741de97f
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Apply the test filter on all tests,
not just the first.
Change-Id: Ib34e90e883f5de2ddcf04c710f433cb54677575d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
With multi-tests, the instance of UnitBase may
change while an old test thread is still running.
Here we capture the instance of the test so we
do not publish events into a different (newer)
test.
Change-Id: I3ca2c058cbd81d4077b140f24f60f3f20f12b9b5
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Now that we may have multiple tests in a
single unit-test module, we should call
UnitWSD::configure for each one, not just
once at the start. Each test can modify
the configuration settings to meet its
test conditions.
Change-Id: I08de2d998edee5b4cbade08f2496196b596a8600
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now capture the expected variable's name
and log the expected and actual values when
the assertion fails.
Change-Id: I1c72de9a816acd4a369e8e3f649615462372c49c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
When invoking exitTest it's useful to know
something about the reason. Whether it's
because the test passed or timed out,
it's useful to log this information.
Change-Id: I8e8ae525b7c2ef1de2e394d08107341cdc87c008
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Now that multiple tests and filtering are
supported, it's useful to know what tests
exist in each unit-test module.
Change-Id: Ifaa7eccabab6b23a57edf2786c0cd726ab0265db
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Using the envar COOL_TEST_OPTIONS, which is
provisioned to support other options than
just filtering, it is now possible to
only run the tests with names partially
matching the filter's case-insensitive
string.
Change-Id: I6168887677fd0fddd72bac2538837615b10b9fae
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Each test loads one or more document. At the end
of the test we may load a new test (a new
UnitWSD/Kit instance). However, because of the
static interface that the tests have, there
could be only one instance at a time. This
means that when we switch the current test
instance, an existing DocBroker might fire
events into the wrong (new) test, making it
fail.
By capturing the current test, we make sure
that DocBroker can never run against different
tests.
Change-Id: I161ec3c9ce1617f41d03b53d2d5fb19682930b78
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The event we trigger when we detect data-loss
is best named to reflect that fact.
And since we can override the behavior,
for example if the test expected to trigger
the data-loss detection, then we can signal
the non-failure by the return value.
Change-Id: I67ca69ae783c956cfdd14d54dab5efb7cc3d258c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Unfortunately, we can eliminate it because
we want to have the file/line where the
command is issued, for debugging. But, the
body doesn't have to be in the macro and
has now moved to a member function.
Change-Id: I02aefa6d8a8182bdfae8a1e0b4bae28a649e74bf
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Small deltas were not compressed at all, now they are.
Change-Id: I0543a488723816b4140b27c5690f657aea26226e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
So tablet user is able to check what is the current edit mode
by looking at the status bar
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4990ca748762eb100b0ca9e791b4ae2a0843f2f6
In rare cases when we have a corrupted document, or
we run out of memory while loading, we end up with
a Kit that has no document and would not be reused.
If we exit the Kit, we immediately cleanup DocBroker
on the WSD side and allow for retrying.
Change-Id: I3e811a066365e94f0606b9458be1272607cc45cf
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
So far, we assumed only json objects are
used, but that's only because we didn't
have arrays. This adds support for detecting
both json arrays and objects alike.
Change-Id: If91bf092ab95869298e90e4f071505471ab1db19
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Mode is sent via status message so handle it there to avoid
race
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iaa9c23d4c88950d88701d8adf552d606871902d8
Remove the comment mentioning the pdf.js issue,
which has been fixed since FF 87:
https://github.com/mozilla/pdf.js/issues/5397
Also remove the Edge and IE cases:
- Edge identifies itself as Chrome, and supports print dialog,
- IE is not supported anymore.
Follow-up to 403e9739cf.
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I7747ee27fccc52b90212ade2a2665dcbd8aa97d4
except if we are in presence of PDF
- Insert is needed there (insert > comment)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I604c5fd483862852bc41396e9780d06a6fdb08d8
Since we can have multiple tests in a single
unit-test .so, we need to merge the results
of each test into a single result that is
used when we exit the process and flag for
failure or success.
Change-Id: Ia49f5542efd6dd998b61c17965fd3fe3245159ba
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Since we no longer need to set the handle,
this function is an initialization of the
given test, before running it.
Change-Id: Ia6fb16b06dd548977fcfcc35a81ac37d979be29d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This adds support for multiple tests
within a single unit-test .so.
We did have many, many tests within
the converted "old style" tests already.
Except, they couldn't support the proper
event-driven tests, nor were they running
as fast as possible. They also blocked the
main thread in COOLWSD.
With this support, we can now avoid
creating a new .so for each test case.
This will reduce the effort to add new
tests and the build time. In addition,
the execution of each unit-test is
dominated by the initialization, which
takes in the order of 5 seconds. Running
multiple tests after this high load time
reduces the per-test average time.
Later we will support listing tests,
running particular tests (i.e. filtering)
and other debugging and troubleshooting
facilities.
Change-Id: I7be43994265ebabdb5d379f7726bb9bd7f78795a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now properly cleanup unit-tests .so libs.
This helps having multiple tests by making
the dlhandle an independent variable of
all the tests.
Change-Id: Ifc8db400aebfe8ea41dcc4df2d11856c25b36074
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This adds support to having multiple tests in
a single unit-test .so.
Change-Id: I37526484e8a692b25393f659dedd846eedc22733
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Documentation and several minor
improvements to UnitWSDClient.
Change-Id: Ia7dae5a3bbd7c1392cb044bd33d59dc108ce37c4
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
It does not work in Online.
Video playback controls are implemented by the browser.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib1aa2bb3d8820afb375a6a2c1a71d022a4dc119e
It's useful to know which extensions are editable
and which are commentable when loading discovery.xml.
Change-Id: Icb06a62eba14240e1d86c4b3cd641531c4fa8e37
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
It's not very helpful to log that some
session is set to this or that without
knowing *which* session the log refers
to. There are many sessions and in a
busy log, it's not always possible to
confidently figure out the answer.
Also log the document loading time and
saving timeout at debug level.
Change-Id: I81fe5e4460f0610a5b941209bc51e4657025c4c2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
And make arguments explicit for a setReadOnly
and setAllowChangeComment.
Default parameters are useful for backward
compatibility, when changing an API. But
they provide no benefit when the function
in question is new and is called a couple
times anyway. Code is harder to read with
default parameters because one has to
either guess (bad) or check (wasteful).
Change-Id: I105df928f4fb73e7c341218af11903bf1ee33943
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The client connection management had nothing to
do with the WopiTestServer and it was there
for convenience. The issue was that it was
not available to tests that do not need
the custom WopiTestServer and depending
on it would make them unnecessarily
complicated.
This adds a new intermediary class to manage
client connections in tests. The reason
this logic didn't move to UnitWSD or even
UnitBase is simply because the client
connection logic depends on the helpers
namespace and other test-specific code
that isn't available in COOLWSD. In short,
UnitBase and UnitWSD are primarily an
interface that COOLWSD and co depend on
and cannot contain test-specific logic
that isn't linked to coolwsd.
We also move the UnitWebSocket helper class.
Change-Id: I79567774164e137349dc162482529578f150353c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Since we can flag a test as passed
at any point, we don't need to
use a flag and override existing
functionality.
Change-Id: I459ef0345b32233414a8fd2573ef26ecc65b92db
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This fixes a race in UnitWOPILock and the
fact that the second view wasn't really
read-only due to empty extensions being
commentable, by default.
Also, improve UnitWOPIUnlock.
Change-Id: I628852d3474042c9e7f54c3d6780e06f694ce141
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This was added in commit 4f03f09c53
(android: Gradle project and other stuff to build., 2019-02-12), but
Online doesn't need it, probably was a copy&paste mistake that went
unnoticed till today Michael S mentioned it on IRC.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Icb60cacfb9469a674db3f0f7a359ccdf01132558
Set the height of sibling element to make them align in the row.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I96b7bd761b208a1000b86cb57b68c83e427bc4d4
when eTag header is not passed from remote server it keeps on parsing the new settings without clearing old ones
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Iaad9fb6c0e7fd45be3e121b0c0bebaba17d90aab
Since uploading has become asynchronous, it
might not have finished by the time we
unlock the document. This race can result
in the upload to fail, if the document
is no longer locked.
Now, we ensure that the lock is released
only after uploading, when we remove the
session. With test.
Change-Id: Ic9ba3290dfbfde0eb4af7a70bb5b56ff28711f5c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Also, don't rely on the timing to have only one
(editing) session by the time we disconnect.
Instead, make the second connection read-only
so that disconnecting the first will always
result in unlocking the document.
Change-Id: Ibbe8164b22d44b52e7b89ad2a677cb196904cac3
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Based on the assumption that the new
number of tiles is correct, the assertion
is updated and the tile tests re-enabled.
Change-Id: I9dabe1ea4ec1b091917c4a94c549f967b9539c13
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Normally, we should exit a test with a single result:
either a success or a failure. It is, however,
possible to have an early success that forgoes
proper cleanups and cause subsequent failures.
Here, we at least log these cases, because it
could unintentionally hide real failures.
Change-Id: I17e6365bd54b3f7336976fb51437776811733eb8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The generated field is
img-src 'self' data: https://www.collaboraoffice.com/https://*:* ...;
while a space was expected before the "https://*:*"
This was introduced with
7e94149ec4
wsd: Only add one img-src rule to the CSP header
Signed-off-by: Thomas Lehmann <t.lehmann@strato-rz.de>
Change-Id: Ia900bb2508e7f04b111160001c6602e87eae2023
do not use height and width, use viewbox, fix dimensions
to be a square and scale factor
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic468ab8ff5615e2f27c5fadfd3248f57efc6914e
Also Remove unicode char in MarcoSelector. Better to avoid
triangles all together since we have cases were the
selected row is a parent and thus having a triangle pointing to
the right makes no sense
Remove other specific rules that are not needed anymore
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia9ad58917f29fc78ae22075672dc837a6a96318e
If user moves mouse - reset current auto scroll settings.
So we don't get scheduled events changing current state
and causing movement in the other direction.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic7e59c87ec7b9a2cba327b5ba8e84ca14b8066e0
It will share information about real size of a data inside
spreadsheet so we can easily check where data ends.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I67137a4471f7eb4faaeeb680977872ccda8e9411
Accessibility checker seems hard to discover. Users tend
to look for such feature in the Help tab (near to Keyboard shortcuts)
and after all we have plenty of space to place it in the help tab.
Better to duplicate instead of moving the icon altogether since it has
been there and we might already have a user base that expects to see
it there. On top of that it makes sense to be together with other
review related action.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ibb5fa8b681faa5a16267f8a23cdbff0ee0d42ec2
We should just ignore that callback in the mobile apps for now.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Ic1e2f79b23d75433a1f4c491bc31e43d4ebbe3c2
It seems the location of the NSS dynamic
libraries have changed recently. This is
true on Ubuntu 22.04 and it seems on
Clear Linux.
We expected to find them in /usr/lib but
they are now in /lib. We support both
now, so the systemplate should work on
both new and old systems.
The symptom of not having the NSS libs
is failure to open password-protected
documents. The tests failed, which
helped to reproduce and debug.
Change-Id: Ifb4cbc4e2c852464ffcdcc19801689ea60355042
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
With the following commit
4e075146b9
we need to update css to use the same lc_linespacing.svg
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ibd7131a69765b29d69de6d2bb53d1407df363345
That is only for web-based COOL. The mobile app stores have their own
feedback and rating mechanisms.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I6f28e27abdf204c7b77247136cc88924639efbd7
There is no "file server" in the mobile apps that would expand such
percent sequences. The generated cool.html file is used as is.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I046c23c13ade6195f3f4a8b395ede7c42fc46bd2
Before this commit the extra space was not used plus
it was making the popup bigger without necessity.
Referenced in https://github.com/CollaboraOnline/online/issues/2015
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I6b2ba82b3d522f9673e555fb4f762b563c3a9c99
Before this commit the statusbar was not being set with the
.readonly css class (already present in other main parent elements)
this, in turn was resulting in enabled and shown actions not proper
for readonly mode.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ife35a5f15c03681788bd16f007c338a9ddaeea52
We can instead, use the existent place for readonly hidden
button on Control.StatusBar.js
Also make use of _updateToolbarsVisibility to show/hide
disable/enable statusbar elements depending on permission mode,
this way changes take affect no only when statusbar is created
but also when we update it.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I5f7186f87740156c486d7a870bf2bfff6f828501
added button in file menu in desktop view in:
calc, impress and draw
added this button in mobile too.
this will allow user to check the property or change it (i.e: password)
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ie9b0776e291046231755739a3c0aa48323c67725
Also reduce cut/paste in configure.ac around checking for files.
Change-Id: I33f789e99ed79f08cb9cfa5ed147b764332adfde
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Avoid fetching and putting pixel data back to the canvas when we
apply a series of deltas to a single keyframe.
Also split high-level from low-level delta debugging.
Change-Id: If4c308b695fb236e0753490d0d20a0fef0a9a470
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
zstd provides for much faster compression server-side, as well
as better decompression.
zstd allows us to de-compress a keyframe and several deltas in a
single call in JS, so it is necessar to add a terminator to the
delta stream so that we can detect when to flush the buffer we
are working on - so the next delta applies to the correct data.
Change-Id: I0e292e3a697b4902d6488b7c04deaba2d1485e94
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
usage
var decompressed = fzstd.decompress(compressed);
// Second argument is optional: custom output buffer
var outBuf = new Uint8Array(100000);
// IMPORTANT: fzstd will assume the buffer is sufficiently sized, so it
// will yield corrupt data if the buffer is too small. It is highly
// recommended to only specify this if you know the maximum output size.
window.fzstd.decompress(compressed, outBuf);
Change-Id: I0b378f9395b2442bac9f0790f7633e6a6cb0402e
Signed-off-by: Henry Castro <hcastro@collabora.com>
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
When we insert empty/not esiting image - we can continue...
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib52f530d06dc8c5cd2780a08623435c440f9eb0a
In mobile view there is no way to select a cell and type something into.
We had to switch edit mode or use formula bar. So automatic percentage
sign addition is useless on mobile view.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: Ie0fca8121534a53304414d98e6fbdef82a349d89
This happens when second time embedded video was selected.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ide47c4927b5717a1f631356dd0f183b086f6a77a
So user can have yet another visual cue that the current mode
is read-only
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ie7862e963603541c04d1b6662fbc7350f6e675a0
To copy paste whole column into another document needs more
time to get a reply from server.
Signed-off-by: Gülşah Köse <gulsah.kose@collabora.com>
Change-Id: I5321b42e321179d541464f8cbdc49fe01502c353
The cursor will hide and the permission will be updated
after the document is re-connected.
Change-Id: Ib0a584371317adabe9898dad8bb0cd96717cefff
Signed-off-by: Henry Castro <hcastro@collabora.com>
Without this commit if the status bar is hidden, it's impossible
to bring it back and so the user is unable to:
- Search within readonly mode
- View the number of pages
- Zoom in our out via selecting the specific values
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If30a0729862788f7475ce800b643db2b386722f3
This helps generate the public URL
easily and unifies the processing
of embedded video.
Change-Id: I07ef7f7722f368957a85e41493fe175de38464f7
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This extracts the sub-path and the tag
as parameters, leaving the rest of the
logic intact.
Change-Id: I4e08537658e14412a1e56b55508ccb9529b00053
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is compatible with the JavaScript
encodeURIComponent(), which supports
XML embedding.
Change-Id: I38bb64af67789bd5eea3f8f8bdb7f80e313599fb
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Draft showing example video preview when activating any shape...
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I37ab8335a3448283abd3c978eb8c62722fd8c7bb
This is needed, for example, for date type cells
for which the format language is set to default.
In this case the load language is used and it
determines the display/output format.
Signed-off-by: Gabriel Masei <gabriel.masei@1and1.ro>
Change-Id: I49ec4940377b261971224d37ea5fbe8ed7006157
Currently translated at 100.0% (462 of 462 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (462 of 462 strings)
Co-authored-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Co-authored-by: Pedro Silva <pedro.silva@collabora.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt_BR/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ia4204d4fac0773d59942c2601845b7efc551cf71
Currently translated at 100.0% (461 of 461 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (461 of 461 strings)
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/en_GB/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/fr/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I3dca37e42b89fc2a2707bb00cd6b37ecbd0d41c3
Use iconURLAlias -> signature (already available svg)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Icdc35aa7206efedffb88d9c87992b791de05647d
When present and equal to 'true', the 'Repair' button and/or menu entry
is hidden in the UI.
Signed-off-by: Jan Holesovsky <kendy@collabora.com>
Change-Id: If8075be479551e0d1a5fa03014aa5e4412578c31
Before this commit we were using a-settings-tablet to try to
target the side menu but it seems we are already using that id
for the header left "Settings" element
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic5a1fa16ef823c935c09307d00fd6848643f0c4c
Before this the shutdown button was at the bottom difficult to
find. It also was a but confusing, at first sight it look like
it was a red button that clean or erases the settings options
(since it was a red button at the bottom of option form)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I7c05b261b9d164f8fa1194eab5314abd87e9320d
Before this commit it was only visible on mobile
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ifc9737d2bcd0014aa7b7d0d05dc0ec356aaf220b
Before this commit, some actions were unreachable on tablets,
small screen factor laptops. Basically when the web browser window
is smaller then the top bar's content.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I2e93540fa7b7d7bcf1a9f7e9f6697322528562f7
So round the value in the progress bar to integer.
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I34058b2b8e04714eb7da60d8274660b06e583702
There are directly provided numbers for key codes in some places.
We can use already defined constant variables.
This makes code more readable and obvious.
Fixes issue #4929 .
Signed-off-by: Tushar <tusharbarman123@gmail.com>
Change-Id: Iccb2e4e89381a78337a3123543d01b00f9f24e6f
Made all the required changes
Signed-off-by: Tushar <tusharbarman123@gmail.com>
Change-Id: Ifea5cf1a8bf73fc91a8b541104d23b5e5ec46981
changed keyCodes to keyCode
Signed-off-by: Tushar <tusharbarman123@gmail.com>
Change-Id: I40be65fa5c567ee2f722d78f6c226444546cb207
changed keyCode to this.keyCodes
Signed-off-by: Tushar <tusharbarman123@gmail.com>
Change-Id: I257a55fbd6a64f4e83f04d22892acbc53bca8aae
solved duplicate keys issue
Signed-off-by: Tushar <tusharbarman123@gmail.com>
Change-Id: I5de1e893996ffb626c055295bbc87a8f76cce624
changed return to enter in keyCodes dictionary
Signed-off-by: Tushar <tusharbarman123@gmail.com>
Change-Id: I54c44915c0ebd5b19f82bc699010708b411f3622
line 343 had errors, resolved it
Signed-off-by: Tushar <tusharbarman123@gmail.com>
Change-Id: I29e1556ba9e31fa74bfdb5d84c1ad06fbc39e396
duplicate subtract error, resolved it
Signed-off-by: Tushar <tusharbarman123@gmail.com>
Change-Id: Ic2b301f28cc9a0ed82df0fee3b215cc77530c86d
line 698, changed num5 to num5[0]
Signed-off-by: Tushar <tusharbarman123@gmail.com>
Change-Id: Id9aed56375e9d42911ec40267f3662bc783d86be
resolved conflicts related to keymappings
Signed-off-by: Tushar <tusharbarman123@gmail.com>
Change-Id: I8ddacf568eb560d2992b662c96a6a32825726700
Made capital letters and few other changes
Signed-off-by: Tushar <tusharbarman123@gmail.com>
Change-Id: I477bf4d9b2fb469d7173937ca39b3a7e85f4e118
Fixed MAC value not used
Signed-off-by: Tushar <tusharbarman123@gmail.com>
Change-Id: I654854f224ccfef0b5a477c184fa5a797c6a4795
Fixed left and right window key for MAC
Signed-off-by: Tushar <tusharbarman123@gmail.com>
Change-Id: I1d3631099454c4846352fd475307f03f33f2038a
triggers replay of other messages that disrupt the view restore during
sheet switch.
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Change-Id: I76619ed78c78d7df6578fe9de36549e7f3f403f5
After recent changes in core, it is only the ForKit process that opens
such files.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I69ce1c4caf229b34e42799c525a1f1461a1841e0
For now, just display it using an infobar. UI experts, feel free to
change it to something more appropriate.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I0b6e592a51441299cc08d0e42ba3b5c5087b30db
define whether locked_host is allowed or not from json
only without the need coolwsd.xml value
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I4c20a56afae3b90c29badc1ecbaec5aa37d07cbd
fetchWopiHostPatterns was used to override old <host></host> which is deprecated and replaced
by alias_groups
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ic16facffdb40eaca504c47a17024cff6ff241950
Seemingly rejectUnauthorized doesn't make nodejs happy either
for unknown reasons.
Change-Id: I99299489ba6af98c4088ee7b95c4d55d1291dfc6
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
wopi host can add following input field to their html to override checkfileinfo, right now only
DownloadAsPostMessage is supported
<input name="checkfileinfo_override" value="DownloadAsPostMessage=true" type="hidden"/>
This can be usefull when same html is used to load collabora online in both desktop browser and mobile webview
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I8ff122f2824694d451724a832d992e08161fb448
Before this commit, list entries with multiple lines where not being
properly aligned.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I0ca9861289f471285ace2dc1d39104d608eb8f15
don't empty the textArea when typing through IME
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I7fac8ddfcdf5eeb3f03fe79bdf538fb52d311cce
Since the request is really synchronous,
there is no benefit in firing up a thread
and doing an asynchronous request when
we will block until the result is in.
Luckily, we have a much simpler sync-
request API that avoids threads and
callbacks.
Also, avoid failure logs when no
infobar URL is provided.
Change-Id: I06a2f7fb042c8e8d5599bb06ecee5b1afa51911a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
If the connection is closed right after the response was sent
then it's wise to add 'Connection: close' header to the response
so that the client optimizes its behaviour: e.g. does not reuse
the socket for further http requests. Normally a client should
retry a request if the reuse of an old socket fails and that
should solve the problem but still this is an overhead.
Signed-off-by: Gabriel Masei <gabriel.masei@1and1.ro>
Change-Id: I29f1498610c567024def3beb1ad7014f2c15a232
Mark as important so will not be overriden by the
mobile-wizard rules.
Use primary color for selection so it will be visible...
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I7688f22c4da0121999b7f7675fcab0b0f59f8c11
Reduce inconsistencies by inherit component properties such as
shadow, border and bg.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia978b229cf4c9616d1d38ccac09644114972b39b
The primary button should inherit styles form our common used
css class
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I923ecc58f5456cba226a35b6f9e180346908febe
-jsdialog: close the popup when zoom event is fired
-use callback to handle the special key event in treelistbox
-code cleanup
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: If46c840d7f751f89898ec1a54ec0a6fcb6811f7a
now you can insert a mention just by starting to type with @
integrator needs to implement UI_Mention postmessage api endpoint on which
online will send request of initial character what user is typing on the basis of
that integrator should send the list of user using Action_Mention postmessage api call
object where each object contains { username: '<username>', profile: '<username profile link> }
for example you can check framed.doc.html
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I38387cd05f1654b0bdb2b4f31cbac633eece5722
When we are in presence of a dialog with just one treeview list
please do not add border around the widget. Container takes care
of it.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I0c99f837ac6174fa60031e773c75fbfa1162762d
- Better to don't set hard width or height values via CSS
JS is already setting it initially and updating it when
zoom changes
- Add min width and min height otherwise:
- The control can become almost impossible to interact with (too
small if we zoom too far out)
- The arrow becomes unreadable
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id54f7addbd8899a3e3ca97493e1865aa36b88817
- No need to make it so dark (can be misleading, as if it was
disabled)
- Inherit border radius
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I8aaf44758ddea447b2d167d80e73c3a8a8a7e022
Before this we were trying to align arrow via bg position
this in turn was leading to problem when the parent control
(drop-down marker) resizes which happens every time we change
document zoom.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iad0479b5db462e5bbe14c8e81f8a41fc024947dc
indexOf returns position - do not sum the positions
This fixes not working cursor position change in
formulabar when we had multiple lines.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I306ab461c832bb0a48d760b84f32938e109959fd
This guarantees that the jail directory is always
created, especially in case mounting fails and
we cleanup and fallback.
Also, move the directory creation and setting
the perms into a helper, and reuse.
Change-Id: If6e9ef86afa5107638aa27050554e94c0af22b6e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
It seems that on some systems it is possible
to succeed in mounting, but fail to unmount.
This is proving very problematic and it is
best to detect unmount failures and disable
mount-binding altogether.
Change-Id: I6f708b3a1e585dcbd95cced45c668629410562d6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- Page Style, Paste Special don't work
- Group/Ungroup Sparklines should be hidden when they aren't
relevant, let's hide completely for now
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: Iae7da11719827512307eeeade10caa56e023c8f0
_selectedMode will be used to store current EditMode
(Page / MasterPage in Impress)
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ie3ff5c2e6d8f122fb5b6e6a6e69363bdd3a51403
These tooltips were not getting styled as the other ones.
Annotation btn tooltips were missing:
- padding (as seen in .ui-tooltip)
- font-size and line-height (as seen in the ones that get styles
from jquery ui css by default)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ief46d294e36dfa0926cf668cd9a9f89589c6da40
currently it was getting styles from generic buttons
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I05e798cc1ba14dcd36607c6b4ec8a27dc33e585a
Avoids logging an ERR.
Proper handling of that functionality is still a work in progress.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Id6bd985ee62e6cb76641d6f866f6318868b9b2b3
We can provide doctype extensions for save-as much like downloadAs
but this will load the new file in the integration. instead of downloading
To achive this, args: {format: '<extension>' } parameter needs to be
sent inside UI_SaveAs postmessage. Because the integration provides
dialog with filename, there the extension will be set after the
filename. Our save-as work flow already handles the rest.
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: I6005846047fc0b26ea07e8eeea965965ed1b87e7
Currently translated at 100.0% (459 of 459 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (459 of 459 strings)
Co-authored-by: Pedro Silva <pedro.silva@collabora.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt_BR/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ie0aa3a60b4934e0bf20598bff981618db8179870
rollbackPastChange function already opens the menu
so don't do it twice
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I930f669589da1f9e18840dae4013d81a49707639
ERR_get_error cleared the returned error,
which meant the subsequent call to print
the error in string form, using
ERR_print_errors_cb, didn't find anything
to report.
Change-Id: If131a8cc0d2c1d8bbf705ed38f144b38abf6c8c6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
prefer picker id, not palette id with number which is generated
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I52d30c3991b516378e82455fdc104b5d94e94f91
Previously sidebar was always active on launch.
This patch together with core fix changes that so
initially it is off and we don't waste resources
for rendering sidebar which is hidden just after short
time.
We don't know the state of sidebar (which deck is activated)
on the core side so in some cases we need to switch decks
in 2 steps: send SidebarShow, and when we received result
we change deck to other one or we do nothing. This allows us
to switch correctly the decks.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib161cae73fd1344d375cb37712c5e805c4d1eefb
we need this state variable set in more generic place
not only in menubar
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I72e100ef91bbe32987ceb1e2bff5903f15c6134b
Remember them on opening if local storage is enabled.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I0c3e4eb65dfc16807d2a9a654d8e71f64341df67
Since this is the normal and expectd case, there
is no reason to repeatedly log that the address
is an allowed one. We do warn in case of disallowing
anyway, so this isn't necessarily adding value.
Notice that this log is generated not just when
convert-to is requested, but when generating the
capabilities json as well.
Still, we trace it for easier debugging, if necessary.
Change-Id: I08661e09bc6b8eb665c6d99437631c8df45fa8b4
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This was a regression introduced in
14d96957cd.
The result was that multi-part logs were
not flushed and therefore not written to
the output.
Change-Id: Ib22a1da83209b00872d91ca05a940226cbb4552d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Make the possibility to collapse/expand tabs more discoverable
by adding tooltip to the:
- selected notebookbar tab when collapsed
- selected nb tab when expanded
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib75fc15fed6400557f6413a0d21be5c155fe8571
Allow tabs container to grow and shrink as needed so
document name is centered in between that container
and the next element
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I8d252478a4ddfdb9362555db6797205369dab57f
This seems quite necessary to avoid missed-clicks between save icon and
File tab and also for white-space needs.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id2bd0e7bc2478684e1cb920cdb917dd43c9acc8f
These used to make sense in the past, when we had completely
different look and feel. Plus even back then this was not super
elegant way of showing that the tab container is draggable.
Furthermore, currently, the tab container is quite distinguishable
form its parent making it visible that the notebookbar-tabs-container
has more content to show.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I6e4c0d5b3bc5e0e21d6cd470446d13b9811846ab
canvas module is needed for make check. --disable-werror is
required, because npm canvas module is not available as a
binary package on all target platforms, and it does not
compile without warnings from source.
Signed-off-by: Yunusemre Şentürk <yunusemre@collabora.com>
Change-Id: I03e1d72d96ec0d6863ccd6236223a87ee481eb09
Reuse createIconURL so it runs through the iconURLAliases before
inserting image url
Example: Chart icon
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia87b064c967df00c796d36fee577f4fd0f260a6f
Adding a margin to the first child only when it is selected is not
smart and causes tabs to move horizontally
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I89cb0c0e96cbb990ecdfb633f186ab5ea1c54078
- The repair document dialog is a leaflet dialog
- As this dialog is online-side only, I'll use the JSDialog builder
directly rather than writing a UI file
- Most of the code to build the dialogs is already very adaptable from
looking at the protocol of existing JSDialogs that come from the
server & where the code goes, however a small change had to be made to
dialog modifications to allow us a callback function, as otherwise we
would send off to the server whenever we pressed on a list item
- Finally, if there's no list to show, we'll show a bit of text saying
that there's nothing, as otherwise it looks like an empty/broken dialog
- If we're on mobile, we'll need to use the alternative helper (the one
that handles mobile wizard building)
- Fix a cypress test for writer (although impress and calc seem to have
tests for this too that aren't implemented: this should be handled in
a follow-up PR)
- Fix mobile tests
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Iab9e943a428e66b05e28819c2ee1001a2deffd2c
...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
The event object in onContextChange has oldContext
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: Ic405edad4c52e51294d5fdfa5e91afa858d0bba7
Math is activated in-place, so we need to replace current elements with
Math-specific ones temporarily, on context switch. Application ID is
required for that.
Having previous context in the event itself would allow to drop storing
it in Control.Notebookbar eventually.
For now, only have Elements deck exposed for Math, because Options deck
needs either re-implementation to host everything in itself, or JS-weld
of Math dialogs.
lc_sidebar.svg images were used for .uno:SidebarDeck.ElementsDeck as a
temporary icon, until there's a dedicated image. See also tdf#149144.
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I37dcda962a2a6ff60e301182033384c56615a24e
continue to use the pid as a short-ish label to disambiguate metrics,
but also define the pid with more labels in the 1st instance.
doc_pid{host="localhost",key="https://localhost:9980/.../hello-world.odt",filename="hello-world.odt"} 1261609
doc_views{pid=1261609} 2
doc_views_active{pid=1261609} 2
doc_is_modified{pid=1261609} 1
...
Change-Id: I573f6d5c8ceb9a7daee83d1f2ee9f42b8e0cd089
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
core.git supports both since commit
4063dcdc7305177b167bd20b009b1dfede8b25ec (Revert naming back to lool to
fix break with LibreOffice Online, 2022-08-26), let's go with the API
name, not with the product name.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I204c4728628579edeb23d5ba76af4bb878130203
Particularly visible when on mobile and the conflict
dialog appears. Without this change primary button can shrunk.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id27761b53a425d16ab4bd2ef2a801890d899ee69
Form tests seems to be a bit unreliable due to toolbar down items
- Not be visible sometimes
- And when the zoom check up is too fast
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4319db1a833335300780d052555f33afc976f33a
Before scrollbar-right would get in the way making it impossible
to click in the desired element
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I6a00dfe8cddf503d39d8e7207b46bba1588f9b96
Better to make sure we only use those on desktop. Otherwise,
a tap can trigger undesirable rules (changing bg etc)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I838328a55ee8943eccbbe8d69b99f76640fb3a69
Submit button should be last so to conform with the current order
used anywhere else.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id794a608621b88076a80cc7ae8dda1e69512ca4f
No need to target #insert_comment solely
- Add generic class so it can be reused
- Do not absolute position etc
- Use flexbox
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ibeb1c517c5fd45b7a7774203cfa5e2a5210678ea
By Renaming .vex-dialog-button-primary -> .button-primary and
.vex-dialog-button-secondary -> .button-secondary
- So we can remove duplicity on CSS buttons
- Easier to set vex primary and secondary button to use our css classes
- This way there is no need to hunt those specific cases down.
- Update cypress tests
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I82f4b33560367805eeeeb5aec9af8d1abd313788
You can now, since 1db5e39ef7 got merged,
rely solely on button-primary and button-secondary class.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic0eb08b443ab6c523d69e50df197eb0d3850fbd4
There are now too many download options to have each format as
an individual icon on the tabbed view. Plus with improvements
introduced in cbf5f1ad71
we can now safely set group_download_as to true as the default
value. Of course, it can still be switched to false if so
desired.
Notes:
Ideally, and if no one objects to it, we can later on and after
a period of testing remove this option and have only one way of
implementing/showing download options (as dropdown).
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I1130684ec2ec54832f5a13648754d29ac71b9d35
Due to this error:
[ coolwsd ] TST testTileProcessed [testTileProcessed] (+12566ms):
ERROR: Assertion failure: Expected exactly the requested number of
tiles Expected arrivedTile == [25] but got [28]
| TileCacheTests.cpp:1580
Probably since 2cc955f9109c0fc8443c9f93c1bf6bd317043cb5 (core)
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: Ie854a57e4241f2c8fbf8e3d769aba8a19981feb1
Eg. if only the version was changed, config.h was updated, and
everything was recompiled.
New structure, maintain these manually:
config.h.in - for configured variables that are stable if
configuration parameters are unchanged
config_version.h.in - for version/hash related variables
----
config_unused.h.in - still generated by autoheader with all
variables, don't use it
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: Id9a50a9f1e798a3b3814778d8683b7d7cb57bb29
This should perform and still be reasonably compact even
for large numbers of documents.
Change-Id: I3820af6c23806d569c23a893bd8db040dfb351e8
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Currently translated at 100.0% (463 of 463 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (463 of 463 strings)
Co-authored-by: atilluF <atilluf@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/it/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I9326fb03b96e4ba9d04ced02e6d79d792483ca4a
Currently translated at 96.7% (442 of 457 strings)
Translated using Weblate (Croatian)
Currently translated at 100.0% (463 of 463 strings)
Translated using Weblate (Croatian)
Currently translated at 94.0% (430 of 457 strings)
Translated using Weblate (Croatian)
Currently translated at 93.8% (429 of 457 strings)
Translated using Weblate (Croatian)
Currently translated at 84.2% (385 of 457 strings)
Translated using Weblate (Croatian)
Currently translated at 82.7% (378 of 457 strings)
Translated using Weblate (Croatian)
Currently translated at 100.0% (463 of 463 strings)
Translated using Weblate (Croatian)
Currently translated at 74.8% (342 of 457 strings)
Translated using Weblate (Croatian)
Currently translated at 100.0% (463 of 463 strings)
Translated using Weblate (Croatian)
Currently translated at 100.0% (22 of 22 strings)
Translated using Weblate (Croatian)
Currently translated at 94.6% (438 of 463 strings)
Co-authored-by: Milo Ivir <mail@milotype.de>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-lib/hr/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/hr/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/hr/
Translation: Collabora Online/Android lib
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I10a2c1a9e04c72e66785d550206c81c2e6bdb431
Instead of jump to the position on a scrollbar, the quick scroll
action (click above/below scrollbar marker) should move us one
page up/down.
This is calc-only feature.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I28f73ea88d30a9a9e313c136538bc033afb03247
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
For some as-yet unknown reason, UnitWOPIStuckSave
is timing out with -j8 for me. It seems that
the issue has to do with the socket not having
the data in a timely fashion. The only thing
that reproduces the issue is the order, and
that isn't always the case. So, it seems
that at some point, on my particular system,
having this test any earlier than where I put
is causing the failure. The fix was to move it.
While I don't yet know the reason, this isn't
happening all the time. It would seem that
after restarting it goes away. So it might
be some system state that is interfering.
Still, I can't explain why this test should
suffer reliably and none of the others.
Worth investigating further, but for now
changing the order.
Change-Id: Ibbb912941f8872c4825468e940e82814b2d14168
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
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>
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>
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>
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>
this patch relies on a core change:
https://gerrit.libreoffice.org/c/core/+/137199
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: Ie5f5dada18539586e7c5ea41b0a296b33ae8ee2e
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
- it is needed for mobile wizard spin fields
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I7464d7017e54425d3ffd022a45c39af51e05e21f
The fuzzer case doesn't read the configuration. This is similar to
what getConfigValue() already did, now extended to
getConfigValueNonZero().
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I14a838ea9875d81413f22140eeac627520c423ab
problem: when we click on checkbox to filter the data in autofilter dialog the checkbox itself disappear
if that is expected behaviour then cypress test needs to modified if not bug needs to be fixed first before
enabling this test
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I4dbfcf8abebe1c65e27c8c090bfce3ed0c59d086
- This is too generic
- If in the beginning this made sense now we have to many elements
and many should not have hover states (invisible, labels etc)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ice27ccb41cff73fa34b89453d99e3bb1fbc03edf
Force placeholder to inherit the same rules as ui-treeview-body
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I61ecde9e35812026683c655f6a2f9ead18e10d02
Depends on core commits 0b92cf674cd44bdd2c2cdf8a5d597d4407e34002
and acf2a2f17942c21b5aca4691c738902a3dd9aa6c.
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I981e1bb0ca76ccc27bfc96a9a0c9dae8991c1a1f
And make sure first tab get extra padding when selected so to keep
some need space for the edge and to respect same alignment
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I96d8a1d5540336632fe75acb8eeef25bd5c4819f
It seems we have inline-block within inline-flex when we could
just have regular block inside of flex
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia242c36ced9908aa07ef09580d3c812f36d437e2
- The test contains coordinate ranges for where the scrollbar must be
- As PR #5131 moves the scrollbars, we need to adjust these coordinates
so the test passes
Signed-off-by: Skyler Grey <skyler3665@gmail.com>
Change-Id: I6d037a304cc86553c47e81acbc63643742db2f66
- Previously the scrollbar was limited so that it couldn't go right to
the top, this commit removes that limit
Signed-off-by: Skyler Grey <skyler3665@gmail.com>
Change-Id: I7fec85ba013a924ca8880c54fc214dfa32387dd1
Better to use a thiner scrollbar as default state.
If needed, increasing it on mouseover could be a worth follow-up
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ifb5a5f50c5d81140e5c6523061941b56e9a0b169
This affects greatly spreadsheet (in the other doctypes we use opacity
for that railway so, it's less evident)
Better to use a color other than white on calc for railway. Otherwise,
the document's content seems being abruptly cutoff into to white space.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I3ed0cf0be9a0228c7862c191d8d9f09c9c8b1f25
- Previously the scrollbar railways started at the start of the drawable
section, this made them draw over other elements such as the
spreadsheet numbering in calc
- Offsetting the scrollbar railway and reducing its width lets us avoid
drawing over anything we shouldn't
Signed-off-by: Skyler Grey <skyler3665@gmail.com>
Change-Id: I8f670c5f6c76fa849ea657b1ceb065f1a91dd087
- Before the opacity for one of the scrollbars was being overwritten
before the scrollbar was drawn. That is now fixed
Signed-off-by: Skyler Grey <skyler3665@gmail.com>
Change-Id: I0aa648c60f59bcc8a997a9176b0075831043c297
- This looks better with the new scrollbar railway, as for example on
calc this stops the spreadsheet displaying beyond the scrollbars
Signed-off-by: Skyler Grey <skyler3665@gmail.com>
Change-Id: Ic99d0f173ba4a2480cd4dc1acb04797dafd1bdcf
- The scrollbar railway should only have 50% opacity unless we're using
a spreadsheet, in which case it should stay at the default 100%
Signed-off-by: Skyler Grey <skyler3665@gmail.com>
Change-Id: Ia2a22bc13fa8b4f7dd9fb7d86ef81fb39b89f32c
Now it is merged on core side.
This reverts commit 4e3b34d6dd.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ie8f7e8f3e8d269af186e0a3d82aed73f63577789
- Show error instead of throwing an TypeError exception.
- Prevent us from showing empty popup when removed comment.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I55adfde01514de559eb3aeedd8c5af2bf88a2ab1
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>
This improves the performance of fuzzing
and removes the checks that can't be guaranteed.
And fixes a test failure.
Change-Id: I987fe15b098c00d9a3d60077f0581d2ef35e306c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This should cap the loop either when we timeout
or when termination is flagged.
Change-Id: I78a6b05df99d6bac5286e4b1e4957829ea91c500
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is a full round-trip http fuzzer.
It can achieve >1000 iterations per second
on a single 2 Ghz core, even while going
through the network loopback layer.
The advantage is that more networking code
is fuzzed this way, including not just
the http code, but also the sockets.
Change-Id: I75d21bd0e25221ee6621097a2605d62c4bb2ae4d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- Avoid using random UNO command (InsertGraphic) for download action
- Centralize download option (re-use bigmenubartoolitem)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ie9cb8564acee8611221e0ff6f841de7b31b777e4
These should not be targeted
- ids can change (e.g. FormatPaintbrush2 ,etc)
- Also unotoolbutton is already inheriting :hover rules
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I7149cebfd52b4049a27bd3989fc88d254440df6d
No need to specifically mention unotoolbutton's parent and apply :hover
, unotoolbutton is already been targeted
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iaa92d50f35f63dea4d10cd0906d9dadb700c25f1
There is no reason for custom handler.
Thanks to that we don't need special css.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I9b576d4a6ef5668ec281c4e1348335d3b93bbac0
don't create wrapper parent for it so we don't duplicate ids
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2e90744bc23141ff153331a7f5bffe634f93e6f1
Previous implementation depended on internal IDs of tab
pages which caused problems when IDs were non-sequential.
New implemention uses the index of each tab page in the
locally stored contentDivs to change tabs.
Signed-off-by: NickWingate <nick.wingate@collabora.com>
Change-Id: I3117698e27ca5f4c90fcbc59ce0c3fe35b351be4
- In classic mode, toolbar color indicators weren't visible when no
text is selected. The reason is that color indicators didn't have
border(outline) color.
- In fact, color indicators were just a box-shadow property. So,
it was not possible(?) to add properties like border and
border-radius.
- No need to use box-shadow property. A <div> tag can represent
color indicators.
- Removed box-shadow property.
- Added <div> tag that has class="selected-color-classic".
- Added UI specifications for mobile. (#toolbar-down)
Signed-off-by: Bayram Çiçek <bayram.cicek@libreoffice.org>
Change-Id: I1b1b68fdc015fd3719d1c59ef7f782036a5934a5
Follow up on the changes introduced in
4e07514
Make sure the explorable list runs iconURLAliases first before
insert image url
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I9295fad934f000acdd27cac64b0c70284c0bbd2f
Follow up on the changes introduced in
4e07514 , update acceptrackedchanges svg
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id2902602a546756d1d8e9299fa7e91d2750f5ce8
Since 22.05 popups (eg autofilter) are handled by the same
code as dialog (Control.JSDialog.js). Allow processing their
messages.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I5cd927172fb6922f20a8832fa58fd149ebdbd7c9
Follow up on the changes introduced in
4e075146b9
- Update toolbar.css with current valid aliases
- Which fixes all a couple of missing SVG console errors
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4eb96175d297b2a6962aa0ec6ab46b82cf060a34
This has the intent to help any integrator in targeting CO
and thus adding additional buttons etc when EnableShare is true.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id010d1e817c3d32c5a835ee0bf8aabefc977f962
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
There is no reason to imply that a negative duration
and/or interval can be negative. 0 is perfectly
sufficient to signal disabling it, without having
to also support negative values. Internally, we
still check for < 0, but the config now doesn't
encourage setting negative values.
Change-Id: Ieaeb5f5ce1efa219a28cc5726a0bd43ef095deb4
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This introduces a new config entry to
control the minimum time between uploads
after a failed attempt. In the case of
a successful upload, the minimum time
between uploads is bounded by the
min_time_between_save_ms config.
Change-Id: Ic7e37f97a52af2c5ec82897b6e81f57211d16553
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This adds a new config entry to help tune
how often to save after the last save
request. This is used regardless of
the auto-save interval.
Change-Id: I58c291e69a63a3b98e72584817b408b54d9f80f1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This enabled previously-disabled PutFile
assertions, now that these cases are fixed,
which makes a number of tests more strict.
Change-Id: I77a0d552b43c73534cd4fbd066e34025d924f793
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- The split cells test currently uses tunneled dialogs to make sure that
we can split table cells
- There is an open gerrit review to switch the split cells dialog to
JSDialogs (https://gerrit.libreoffice.org/c/core/+/137791) which is
blocked because the tunneled dialog needs to be removed in it, and
that fails this test
- This test needs to be temporarily disabled to give coreside a chance
to merge that review and build a new version of the libreoffice
archive. Once that has happened, this test should be replaced with a
rewritten version
Signed-off-by: Skyler Grey <skyler3665@gmail.com>
Change-Id: I0bb51e3cdbc04020e03c8d87696d014a0f693554
clickonIdle waits for the DOM element to be idle so test doesnot fail due to ui flickering
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I43b0800b23970326a4a6e84bfc662b67fea4f364
This reverts commit 08b1d4b1e7.
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
It was removed in:
mobile wizard: hide unsupported items in table panel
commit 1aed5ddaa4
but now works
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia9ba8d9c7bad1c2074405617a4443e05df42ac66
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
While bind-mounting is very fast, linking and copying
are both often much slower. Normally, we give extra
time to forking Kit the first time, but then we
reduce the timeout there after. Here, we take into
account whether or not bind-mounting is enabled
before we reduce the timeout to the normal level.
That is, if bind-mounting isn't enabled, we leave
the timeout to be higher-than-normal to accomodate
slow linking or copying.
The benefit of this is evident in the stability of
tests when bind-mounting is disabled (even on fast
filesystems with linking).
Change-Id: I959abf6d3253b2c91be8e0c9a59ec12511817bb9
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This adds support for code-coverage HTML reporting.
To achieve this, we must use file-linking in jails
so that we can update the coverage data (.gcda files)
from the jails. This means that creating jails is
slower than with bind-mounting and we need to
account for that in our timeouts.
We also can't kill child processes with SIGKILL,
which is un-catchable. Instead, we use SIGTERM
and dump the profile data before exiting.
Change-Id: I16fa534f6ed42f7133014d841bb024423315e0a4
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Now that most tests are rid of poco sockets
and fixed a number of other issues, the
tests run much faster. The relative timings
have changed, so re-ordering can yield
better total time with -j.
The new order gives ~20% shorter execution
time with -j8 (on 8c/16t i9 @ 2.0 Ghz fixed).
Actual time went from ~2:11 down to 1:46.
A saving of more than 25 seconds.
Change-Id: I0f23b86e4218fff187cdbcc756eb77522732a64b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Without this, we may end up retrying a dozen times
before giving up, all when the test is complete.
This happened rarely when the test in question didn't
care to wait for the connection to finish. Such a test
exists for wopi redirections; UnitWOPIHttpRedirect.
Change-Id: Ied43119c91343be812d7c1a2be86ba8d21b4f021
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This helps detect when tests cross-connect.
A rare, and very hard to find, issue went
like this:
A test (a random one) would recieve a request
that it didn't expect. This would cause it
to fail. It was clear that this was coming
from a different test--but which?
Meanwhile, another test (UnitWOPIHttpRedirect)
was in connectLOKit retry loop due to repeated
failure to connect.
With this patch, it was easy to see what was
happening, once the source was found. The
idea is to stamp the test sending the
request so the test-server can validate.
Upon failure, we can see the source test.
The source test (UnitWOPIHttpRedirect),
in the case in question, is a
server-side test. It flagged to exit once
it verified that the redirection worked
(in the GetFile serving the document).
Unfortunately, exiting didn't stop the
connection attempts in the same test. In
most cases the document would load before
DocBroker is stopped. But every so often
everything would shutdown and the test
would keep trying to connectLOKit.
Since we shutdown everything, we also
closed the listening port, which is now
available for other tests to re-use.
This is how UnitWOPIHttpRedirect requests
ended up at different tests, causing them
to fail sporadically.
The subsequent test fixes the retry logic.
The fix is left separate since this patch
is useful on its own, and independent of
the issue and the fix. This is just a tool.
Change-Id: I2848cc578a102fc0bd981e1ac71aaabc25f1a403
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Without this patch, we may end up repeatedly
sending close-frame. This impacts tests only.
Change-Id: I3c9a0cb14c9103d002508b1199647f6ff9761230
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: I9b89c017e4bbba81267f753cbe26419912d32be8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We cannot invoke the socket from outside the
SocketPoll and we must flag for async shutdown.
Change-Id: I223e24f5fe48a79a9d751c7cf5cdf9d720c22f7d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This handles an edge-case that failed randomly.
Change-Id: I0e13130477698f9a4fbdb2812a592a706ba408b4
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Compile-time constants are far superior
to hard-coded magic numbers and they
make changing them trivial. We need that
when we enable profiling.
Change-Id: I9ee42fabf3feb1feecb9b76ebca663007e263680
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: I728f9c975b67da76dbbc78e94f1fb5f224c9bc57
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
And disable it, since it's empty and has
no functional tests in it at all (it just
loads a document and exits the test, without
even waiting for the loading to finish).
We modernize, even though we also disable it,
because otherwise it wouldn't build.
Change-Id: I3735f28fa27af1d00e764f4e0070a25ff36b32d5
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This avoids the case where we fail to
create the jail completely, get killed,
or crash. All of which might leave the
jail unremoved.
Change-Id: I4c6b6a038110186af7be9f358a42902b224188e0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Explicit is always better. We also need to
terminate more gracefully when profiling.
Change-Id: I7145cb59583c5d7c6362bbf9c74e9d21799eaa33
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We need to flush and shutdown logging before exiting,
so we can't use _exit/_Exit directly.
In addition, with profiling (e.g. code-coverage) we
must flush the profile data, lest it's all for naught.
Change-Id: I726c5a2f4e699c17dd0d7d5b1c86d856e0118b3c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- coolwsd.xml.in is the file copied to coolwsd.xml to become the
configuration file for COOL
- this PR fixes a typo in the languagetool section
Signed-off-by: Skyler Grey <skyler3665@gmail.com>
Change-Id: I945d6d8257df34437092ac9f9c3f395cf5c759b1
Currently translated at 34.9% (162 of 463 strings)
Translated using Weblate (Hindi)
Currently translated at 33.2% (154 of 463 strings)
Co-authored-by: Pranam Lashkari <plashkari628@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/hi/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ica85e9bf83bd2d05613c876c80c8b383a25955d9
Currently translated at 70.0% (320 of 457 strings)
Translated using Weblate (Hebrew)
Currently translated at 69.8% (319 of 457 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (457 of 457 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (463 of 463 strings)
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/ar/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/he/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/he/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: If507f0e03897d8580d9d8eb06050f4c5ef49ec56
With changes from 4e07514
Some elements without id were being listed (using their CSS classes)
and their corresponding SVG files were removed
This reverts those lines making sure that icons within insert shapes
menu or fontwork are not missing anymore.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4d1ad6a0f2124867ea47c8ca5c0c636aa5646143
With changes from 4e075146b9
4 problems were introduced, this fixes it:
- Writer > Form controls > insert date form control
- We were trying to alias with an already inexistent SVG
- Impress > layout tab > Master slides sidebar
- Typo: missing s in slides (masterslidespanel)
- Impress > top toolbar > Master slide sidebar
- Same as the previous one
- Calc > style apply (next to conditional)
- Typo: lc_ and .svg was being used
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I794dd0bbcb0593909a950e31413823a30f79bfad
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
This fix the follow issue
https://archive.org/download/mobile-wizard-generating-spans/mobile-wizard-generating-spans.png
but it also removes unnecessary css block related to all those span
elements associated with unotoolbutton. Better to avoid creating
the HTML element instead of creating and then hiding it.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4e9ea01456370f1f7f877de00cf1a57e15337f45
- This commit fixes#5052
- Files which were directly in `/browser/images` were the only ones I
considered in-scope for this (not files in `/browser/images/dark` as I
did not want any aliasing there to influence light theme)
- Files which weren't named `lc_*.svg` were not considered for this, as
the function with the alias list transformed the names into that
format
- Dupes were found with `find . ! -empty -type f -exec md5sum {} + | sort | uniq -w32 -d --all-repeated=separate`
It is possible (although unlikely) that there was a hash collision and
I incorrectly aliased an image. The names I was aliasing seemed sane
though, so I doubt this was the case.
- I changed the behavior of the aliases object such that it is *after*
the lowercasing of the name and not before; this was so that I didn't
have to worry about if capitals were used (as there were some SVGs
with different combinations of underscores etc. and I didn't want to
assume they all always needed to be in CamelCase)
Signed-off-by: Skyler Grey <skyler3665@gmail.com>
Change-Id: I4d7972900195edeaa8f5f8941d18ab556319a7f7
- 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
- Previously going into Help > About > View widgets would show a window
where the close button was rendered slightly out of the top of the
window
- This was because without the title taking up a line, the title bar
shrunk to be too small to contain the close button
- This commit makes sure that the title can never take up less than a
line in height
Signed-off-by: Skyler Grey <skyler3665@gmail.com>
Change-Id: I9ead59711e3db3cde6af485ebcccf0b8a3ea57a5
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>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: Ib835b8efb7b65fee11e0a2aebf34cc4ee86dbab7
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: I4a21902d2ef1472ac8d7a73f6881b059c683de93
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: I814eece097823959c70954cc53a755392135965e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: I422c31d85e3422541a0ab367007876c3a33fa124
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: I2ed85129b9a58d49f19bea0b2e4f8f09b7b36f5f
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: Ia24ef764219f31b0610d85b63ee6000df62b8c8c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: Ib9142f7751ddf6a17a9a17e09898a96f5071e9a6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: I70887502320cf1a86cd24525dcdb5af98ac6e67c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: Ief648126bf45376737c281dd3b9637e33339b414
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: Ied70aff99ecd61571c13974d0cfb63e6ab5bda47
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: If1a83eb4a78102c9090699934767a759c8923542
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: I8e51c000cea0fd323c6babd9e12d81c8c8c9eeaa
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: I30a4dc1b762caba1ecfad8f5784871b2bba583f6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: I3035ea1d335b05d6ced677a91f32f0233380a5a8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: If6c33a53d7a01a83db718407d4f78464e07ed204
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: Id7b63d25e497377c37f487a704c015dd7babfc32
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: Ie787fb518c9e1528155d96fbe549f16678111095
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
Change-Id: I76a7d4c7640abfcf54a181c5080ae2a027c73874
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We now use our http::Socket and SocketPoll
instead of Poco.
UnitEachView now finishes ~3x faster.
It's also much more consistent in its
runtime.
More importantly, the CPU utilization
went from ~20% to ~90%. Poco was spending
most of its time polling (and often timing
out). It has corner-cases that make it
miss events completely, for some reason.
Change-Id: Ibcc8fbd638e5ec950a34b418414521accdd443f8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This will allow to fill column with formula when data
are present in neighborhood
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I3f341b57b0d40251cb10a4f7b628c5c8f438e986
Fixes typing on Android using GBoard in Chrome
before this patch we didn't get any input due to
lack of keyCode, we need to use 'input' events
which are already handled in TextInput.js
This patch does that only for mobile case, later
we can try to unify it with desktop so we remove
our custom formulabar input even there.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I318840dee78ddf0f803af74236a6c880c3f09329
this error was shown on socket disconnect on mobile Chrome in older
phone
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I927880ce1848fd1d48776202679ee14a8858e065
The dot above the save icon was not scrolling together
with its parent:
- Make sure the little dot is always under a parent with
position set to relative
- Adjust top position due to that ^ change
- It also fixes for narrow window on desktop
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I5844400cd1a15fe5693bb2b0be880460d974eec1
Automatically generated .log folder relate to typescript
was not being ignored
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I0fa8bcbe9e3a9eeae8f1549d6d073865d06eb41d
- 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
- 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 70f4f8b92e
- 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
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
Building upon 70f4f8b92e
, 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
We shouldn't write to the socket outside the main thread ever or
we'll get memory corruption; cf. a number of suspicious traces
around this code.
Change-Id: Ibeb36fffbecce960012a55b3ab4fd40c9996ae68
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Now the tiles show up correctly in the iOS app again.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I2b1741ed9f5fc4e4df30cb67addfa45eb0d20b92
Before ed5569da30
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>
We store each byte as one character, i.e. UTF-16 unit, in the string.
Yes, this is inefficient.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I75cc211d7a8da98a4e0e5b5b3d000e7ed66c271e
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>
Added the 'tzdata' package to Ubuntu-based Docker builds and the
'timezone' package to openSUSE builds, to allow Docker users to run
the containers with a custom timezone by passing a TZ env variable.
Signed-off-by: Tobia Conforto <tobia.conforto@gmail.com>
Change-Id: Idafd84dde3383b4801ff4b3ebb8ac1826fe49fcc
This is needed so 584aa5b8f6
is also applied on tabbed view.
Until now we were just adding that class when on compact view
(Control.TopToolbar.js)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I8c0ac3d909f64025f301651564b3c2b1ae130e1c
Instead of using URL parameter hash to direct all the users on same document to same server,
use stick-tables for it
original problem:
Problem was load balancer provided us with required persistence and balance both.
we directed traffic based on the url_param which means,
all the traffic with same url_param will go to same pod/server.
All the new values of url_param will be directed to different servers in round-robin way
this can be less efficient in a high traffic environment
solution:
this new method allows us to balance and manage persistence separately
so we can specify our desired algorithm for load balancing
and persistence is managed using stick-table
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I80d63a2fc33f796c4534d94fb8de1e44c62ee9e2
We now have USR2 signal that dumps the
stack-trace of each process. This is useful for
capturing the state of misbehaving instances.
COOLWSD forwards USR2 to forkit and the kits
so they dump their stacktraces too.
This patch does not change the behavior of USR1.
Specifically, unlike USR2, USR1 is not forwarded
from wsd to frk and the kits. Also unlike USR2,
USR1 dumps into stderr.
Change-Id: I1d82f678f30f430f627692cc42961b1928f69e11
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
SIGUSR2 can now be used to dump the
stacktrace of coolwsd, forkit, and the
kit processes.
Also, support writing signalLog to files.
Although we write to stderr, we normalize
the interface used for signal logging and
allow for writing to any file descriptor.
Change-Id: If6366bb6ddbd9f8863baca52e4f65ebb468dc1f1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This replaces the hardcoded STDERR_FILENO
to allow for writing to any file, including
stdout or a redirection to disk, if needed.
Change-Id: I76f6461f46fd4bc035fcf643d01e60c2e3236894
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
In preparation to log to a file in the jail.
This will allow for including the log in the
log file, thus capturing all output from our
thread-group into the same log file.
Change-Id: Ia5c4ed35786d28f5d45f3065919d53f2c8492cb0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This simplifies the signal handling setup.
Change-Id: Id121a9df45fc11bfdea627f9828e0b624b1b2284
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is to ensure that libgcc is loaded and
backtrace is available during signal handling.
Change-Id: I5bb36b69401dbedf4c991ba7d60d2e806441a625
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This moves the shared_ptr copy to outside the
lock, as well as reducing logging inside it.
Change-Id: Iedde95b3fe60fc40bbd035a9d43a9b95af7efdcc
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Since the value of the loSubPath (i.e. the directory
name of lo within the jail) is a compile-time constant,
there is no reason to pass it around at runtime.
Change-Id: If7457ea7f3e3fe5c42215eed3ce1ce4c8f328f16
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This prepares the way to remove loSubPath
being passed around at runtime, which is
completely unnecessary.
Change-Id: I728629e3cb5eb079add4232543319b89a7dc4a2a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is an internal rename of identifiers.
Child-Root is the top-level, configurable, directory
that stores the jails and related directories/files.
A Jail, by contrast, is the directory that contains
the filesyste tree of a Kit process. That is, it's
the directory that is chroot-ed.
To distinguish the two, we shall use "jail" for
the chroot-ed directory, and "child-root" for the
top-level directory.
Change-Id: Ie38b1c350234b75ddd15beb1c6bcdd2e53a82af0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Currently translated at 62.5% (286 of 457 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (462 of 462 strings)
Translated using Weblate (Russian)
Currently translated at 99.7% (461 of 462 strings)
Co-authored-by: Егор Ермаков <eg.ermakov2016@yandex.ru>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/ru/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/ru/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I821ed266d54f8802e747aa5c558799851d93121e
Our plain text clipboard output generated additional newlines
at the beginning of every paragraph. To fix that we need
fix in core side which now fails due to expected bad format in cypress.
This is interim state where we accept both old and new format.
see for reference: https://gerrit.libreoffice.org/c/core/+/136893
lok: don't pretty print html for online
I2b17d62398d947fcf1d3fb1ed6005c3063d114f2
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia2d75c75f40dffbe08d1c77e09c2331db18734f4
Use a dark solid background color - with a shadow (already existent)
- to stand out against content.
Make sure button is blue similar to test selection handles or some
icons etc. So it is visible at 1st sight what's the action
Remove unnecessary or duplicated rules
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I53a291f762c4ed40f5b39230fad8246fa280d050
It is not a normal dialog as in jsdialog or lodialog,
no need to add border
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib7a4d3d1a89f1c69df8e7a374d4283d48b66e42b
Avoid odd number by stop relying on a division by 2.
Instead, use the same already existent border radius.
-----
In the future if we end up deciding on something else,
we should probably create a new var for that and apply
it to all dialogs
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If0e53f0b2a965587c33156536f74fcc0a223a43a
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
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
Before this change the spinner were getting unnecessary additional
padding.
Signed-off-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Change-Id: I43b8bffc8bacc13dfc633cee4cd8f7823834d402
Without initialization, gcc12 complains
that these values may be uninitialized at the
usage site (in the Kit API).
Change-Id: I06df9d69977b1f89bfa2e0a3ca7404c026b570ed
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Our plain text clipboard output generated additional newlines
at the beginning of every paragraph. To fix that we need
fix in core side which now fails due to expected bad format in cypress.
This is interim state where we accept both old and new format.
see for reference: https://gerrit.libreoffice.org/c/core/+/136893
lok: don't pretty print html for online
Change-Id: I2b17d62398d947fcf1d3fb1ed6005c3063d114f2
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I6adea1250bb4d54713e0a189b89930e82522a571
based on extra_params update the scheme and port when mapping domain->alias_groups
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ic5783112b8331407622f547a84d70ab2e1ba0c37
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>
Our plain text clipboard output generated additional newlines
at the beginning of every paragraph. To fix that we need
fix in core side which now fails due to expected bad format in cypress.
This is interim state where we accept both old and new format.
see for reference: https://gerrit.libreoffice.org/c/core/+/136893
lok: don't pretty print html for online
Change-Id: I2b17d62398d947fcf1d3fb1ed6005c3063d114f2
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I70fa8be619a62709d6e5ada32b7a670f90d7b2bf
because we now support having regex in alias_groups.group.host
for more info: 45891d0ded
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ib8c16cd7db18719076d62347738e23bbefaa9204
Since we remove a bottom padding in the toolbar-wrapper
with 3d27de7eb1
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Icf272e5c29455868cd43cf494935401ec10229e0
This was affecting how we perceive padding around formulabar
- Making it look uneven (with more space at the bottom)
- Making toolbar-wrapper's bg visible at the bottom
Remove bottom padding when in presence of spreadsheet so to
avoid affecting the other apps
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Icce34ecb64781221428130f4a11420b5546003ad
Using unitless values will be automatically
multiply by the element's font size
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ice4b56c5da7e47aae83347c1bf6b6ac377a51518
Make sure every element between item address parent and the
item address itself is place at the top
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib883f6659788f4ec42ae6d953fa2d857038fc815
- Set heights to even numbers so we don't end up with uneven
surrounding vertical spaces
- Remove individual top margins (margin-block-start) from btns
- Instead fix underlying issue with formulabar
- Fix text-area padding inconsistencies between being expanded
and collapsed. Problem: text area becomes taller, ending up
occupying the top and bottom white space left from its parent
- Leverage new css class added to the main parent #formulabar
and add vertical padding so text-area forces parent to increase
in size
- Remove sub parent's (#tb_formulabar_item_formula)
individual top padding
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I380af6cf70c0e879224329fbf9093e0778a38d8d
Avoid setting elements, located on the edges, with margin
in the hopes we get an overall padding:
- Remove it
- Add instead a true padding to the main parent
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ie1690c9cc3c58f59387cb6aa73df20d42f5cc1fb
When editing formulabar using keyboard - try to use shift + arrow
to make selection from the end in backward direction.
This patch makes it possible (visible).
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I48073214545892d98be097b38c60251ff95082f3
eg. Chrome setups selection only if element has focus
it prevents us from stealing focus by formulabar when
switching cells
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I46cbd4d04615478a95a36dd8bcda22d732e74d3e
check infobar data when the server send
the user info data.
Change-Id: I0ba1da488f9b3d03dc7e3f42cea718273e6939b1
Signed-off-by: Henry Castro <hcastro@collabora.com>
if there is no more paragraphs: exit the loop
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I7075ff5454e1ddcc11155867f835e85117bdea15
Improve performance by not looking up endIdx that may be over the end
of the range. Ensure we still have valid data for the pieces we do
know about.
Playing with a complex 1m row spreadsheet and re-sizing rows by
typing multi-line text into them would provoke row header problems
otherwise.
Change-Id: I5a110137e6d26e2c4b272210cf41883abb02c3af
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
When we use API call InsertButton and we add custom buttons
we want to keep them when we switch between compact/tabbed view.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: If03520f52422ac41aa40432f068e5bc011ed2596
use sendContentControlEvent to set picture instead of InsertGraphic uno command
since InsertGraphic is not allowed for a protected content control (like picture),
only sendContentControlEvent();
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I5f70919d995c51456056a8be2aa1e596df7bedc2
and thus avoid cropping it altogether
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If959c617c6036daa353dc8185668aeb99d515497
Before not only it was not vertically aligned but it was difficult
to read
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I3790d51f4a90dd9bdb5158cfa16ed92de1ebfca5
Set it to 24px, fix stroke and make it a path
- Result same size, smaller visual indicator
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic41b7a1d8e798998ea9399cd68c9fc6b46e73725
Decrease number of visual differences between the two while
by using similar style. Add border radius already in use
in other components such as drop-down menus.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I09b51f0817d35641cfc7d028e281ae3ba362a663
The rules found in toolbar-mobile.css seem to no longer be needed
in any shape or form on desktop (even on FF). Remove file and
insert those changes within device-mobile (so it is loaded only
when on mobile)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I58a3d52fc6313a8e32916fa2b5dd4796dd1c1cef
And make them less "shouting" by default
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I69306cbe6107ce1f7306291fe55d7f54f7fdfe8b
- Make it clear that it is a menu button
- Remove extra space between triangle and image
- Fix icon size, before it was overshadowing the function icon
- Redo icon, so it is more legible, less tall and less flimsy
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I95c635b9a39aaa4dd470372018c63c9f45385b25
this patch relies on core change
https://gerrit.libreoffice.org/c/core/+/136811
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: Id9fa7273631f93914afa870e2c1148a9aa01c2e7
ported from:
PR: https://github.com/CollaboraOnline/online/pull/4976
In cases when the button text is too long
or when using CO in, for example, DE language and when
the length of the parent dialog was not enough the btns
would not stack up, instead that would overlap. This would
make reading those btns impossible.
![vex-btns-overlap](https://archive.org/download/csv-overlap-btn-labels/CSV-overlap-btn-labels.png)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I801ea330db21add35d0a81466a1fba9501a61899
Apparently this is an issue for proxy.php.
Change-Id: I18090f17f22fe3145e7fa2364992a34a7e722f1b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
And dump the saving timeout in the state dump.
Change-Id: If203d5434ee17f646009ee241b8484ca597840ad
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Currently translated at 100.0% (462 of 462 strings)
Translated using Weblate (Italian)
Currently translated at 93.0% (430 of 462 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (457 of 457 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (22 of 22 strings)
Co-authored-by: AbsurdUsername <sgso@pm.me>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/android-lib/it/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/it/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/it/
Translation: Collabora Online/Android lib
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I41053824fbb7040c79820dd95e503fe7dcf00f1b
This helps us to be in sync with core especially with
problematic dropdowns like:
Sidebar in shape context -> Line Panel -> Line Width
This will close and not reopen the popup when we click outside.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4daf90f2611f6caa922022e1cc6e248f6a62d02f
User a darker background for on mouseover items
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib6dc6d2ed434d21765ab3d6bf3988dc918261281
Use the same padding as the user names and thus fixing the
alignment (vertical: checkbox vs avatars)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I1acb8cf5e3e5dc8aad083151c9c54b38aa552d6c
Until now user was reporting not fully understanding all the
features that user userListPopover offers. Namely, not knowing
that not only is possible to follow the editor (checkbox) but
that it is also possible to follow a specific user from the list
Make it easier to understand what's the current following status
by adding "Following" under the selected user name in the list
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I0beba5df06f2cc7a9a349ef8f93db6b403befb9b
Get rid of the popover once the user completes the action
Probably better to avoid having hanging popover (that have no
close btn) and instead close them, specially because this
one can always be re-opened at anytime from omnipresent
toolbar and without risk of triggering any additional change
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Id7946512e6c54622e3ed20b28d56178c05b18b5c
Make sure the avatar list popover automatically gets out of the
way once the user selects an entry (follow user)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ie83a587e4f9900ffb0d70cadbfb13cfe81d8b849
Before the triangle was getting a different bg when compared
to #userListPopover
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If110d9e1178bedb7e858804e169689ee97a5a385
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
When spreadsheet was opened after few seconds we received CellCursor
message.
If comment was opened end edited at that time - it dissapeared
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I15804bfa0bf9ccac03c2858184db327a978061b3
ignore wopi.storage.host entries when storage.wopi.alias_groups entry is defined in config
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I7ea73f147e283077b02bdacb37f8850f7613c0c3
common case, forward response to client or
socket error.
Change-Id: I7dc730e7cae7292b54ee8a6ac2a8b12a20c41fa4
Signed-off-by: Henry Castro <hcastro@collabora.com>
Added test for 2 emphasis animations:
- spin
- grow and shrink
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I3e5477b327e2d56776258cddf5de84617c1dc0a2
Don't add multiple overlays with the same id.
Remove overlay always when it exists and we close.
Close dropdown entires by dropdown click - specific to 21.11
where popups in the core are handled differently.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia1652434f38571defb817bfb29491ed0bd246e73
For toolitems with dropdowns we should toggle the button.
Use correct parent so we don't use button from other component.
Later we send toggle event to properly close the popup on the server.
example: Calc sidebar, Underline popup
Before this patch when we clicked in outside the popup it dissapeared
but app was completly blocked.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I124a41361df305931c66047a8799ce03393b67de
Currently translated at 100.0% (457 of 457 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (455 of 455 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (5 of 5 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (457 of 457 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (455 of 455 strings)
Co-authored-by: Sebastiaan Veld <sebastiaan.veld@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/nl/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ios-app/nl/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/nl/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Translation: Collabora Online/iOS app
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I4ad42f81a439d04a053b18b5669ba6f42f116d7b
Currently translated at 100.0% (455 of 455 strings)
Translated using Weblate (Hebrew)
Currently translated at 99.7% (454 of 455 strings)
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/he/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I492efa1e1594cb3aeb663818a61dd26f9f2dbf95
Keep in sync colors in sidebar and notebookbar when
we change one of them.
Followup for
commit 13ef21aa1e
notebookbar: unify color control with core
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ia8af727c6ba6b5b32a644ff070954c9ada584a24
unclutter formula bar surrouding elements by removing the visual
break and instead add padding. Plus: we can now remove CSS
rules that were targetting that break's id
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4a9990a5709918d7cacfac2ef41b91281f9af54a
This fixes a odd behaviour present on chrome based browsers
where the adress input (current cell) was being rendered
with a thicker border and with emboss style due to browsers'
default values
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib5ab745ab45415e86a2976d537b5766a72a136d3
Just after we opened spreadsheet and opened font list - it was
closed after some seconds due to focus change caused by
.uno:CellCursor update.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ifabde00163567ab7d4f3f8359d58b4251fff5ec3
in desktop case color widget should show the latest selected
color not current one. split the button into arrow with dropdown
and "last color" button (icon)
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I07fcc94d69e14b030cf9f1bfe3ae50f0df333ec7
the css rule for #fontsizecombobox at file
mobilewizard.css
change also the behaviour at desktop sidebar
so added .mobile-wizard and than the rule
was for mobile only.
Signed-off-by: andreas kainz <kainz.a@gmail.com>
Change-Id: I704857bca49556abebca018ef7a284c7b2159530
Be sure we focus active part of a widget. We also require
active eleme3nts to have unique ids assigned so we don't
lose focus after we update the widget.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iaf741f4753022b7f4da92184d576623dd0300adc
This helps to keep id unique and process events correctly.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I35997ed40d09de73a7451b54243c54b041fd9c34
fix: after switching to Notebookbar view and back again to Classic View; the Save icon reappears.
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I8fda18a9148c679209f0de99b80526393a965720
This avoids problems with watermarking cross-talking betwene view.
Change-Id: Ifecf098423451bf7de3827dfdf9fdc078a06c5c9
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
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
We need to return a real Tile for _dontCache, and an empty one
if we want to ignore the canceltiles race.
Change-Id: Iad57fc1e3a2718aec34c0eeff97d5f58e215d174
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
It ensures that we pair un-subscription for a tile change with the
request - since we can have multiple tile requests in flight at a
given time.
Change-Id: I3a00ff7f43fc8ef203b8e38c169938438286d75f
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
These will get newer wids later of course.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I906f47255854eb065d41e629508867ffa6e9f953
add: form icon in insert menu
fix: datecontentcontrol icon in form menu, jsdialog: options for all content control types were shown
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Id3f425f3a80cb09f58b3f83224bb19ebb365e8f3
We should have a larger delta-cache with more users eg.
Change-Id: Idc3075636df2e7705950fcf6762e40546792a285
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
now logs can provide stats for the users each time they access a document
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I75d1637864b97c553285bc5d1850a8f75cd50d9f
Needs a run-time check to avoid breaking concurrency assumption
during compression.
Change-Id: Icc959693e19b3506497eb1aa198477445085aeb8
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
This will allow to create multiline cell content using Shift+Enter
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ie1b8497063fc59e29d010c62724b88c4ad8972a0
if host has regex and group has no aliases, when we receive first request from host pattern we considered it as original host and all the host following first request which matches the pattern are considered as aliases
for example:
<group>
<host>https://.*:80</host>
</group>
if we receives first request from asustuf then behaviour will similar to the following config:
<group>
<host>https://asustuf:80</host>
<alias>https://.*:80</alias>
</group>
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I70fb91a4bb7bf38ed79db9efd9fe4bc46db325e1
Content control properties is not always an active button, it only
takes affect once a content control is selected thus best to place it
at the end.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ie13bdc81a84730380d8462241661775d1abd1699
Currently there is no plans of adding more content controls. In total
there are 5 content controls toolitems and one for accessing its
properties.
- Make it easier to pick content controls by increase toolitem size
(bigtoolitem)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I86d8c1025cb4ff82fe45654076800057e17e9ea6
No need to duplicate the icon, use the existent one.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I22ad3f99778051d6b663207ad229e808a34c0e3e
add uno command to insert date in form tab
renamed 'Content Control Properties' -> 'Properties'
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ib4a439cd349bb79430d590e0b80c825372c629d3
Don't generate spam in the console log with warnings about not
activated notebookbar in apps where we don't use any welded widgets.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I48c2d843752058923242d6678f08ec0791d08e4c
We automatically send notebookbar activation command in some cases.
Allow this command when dialog is opened and don't blink.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Iac068cfca49ce6dbfe241bde752a475560d3445e
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
when other view moved cursor outside out view - all of
them were hidden because we used selector for all the
elements matching cursor class - instead of current
instance
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: If97606f33e44ce59f747ad0b015048deacbe8657
add combobox to list of non-containers and cleanup
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I657038c960d7c606a0e437b0c24e74e83f2c2b00
Apparently for some subset of messages (presumably on busy queues)
we have been double compressing the same tiles ...
Change-Id: I79aea4f2162caa8a5b5660c13ae2cae855d90755
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Compact View is separate in the menubar from Sidebar and Statusbar
So it shouldn't be between them in the View Tab.
Signed-off-by: andreas kainz <kainz.a@gmail.com>
Change-Id: Ib46e9c4a4df24432eae5a7fef335e7cde68b1766
Signed-off-by: andreas kainz <kainz.a@gmail.com>
In the insert tab there is the command uno:BasicShapes
by select BasicShapes the user can insert shapes
at least Basic Shapes, Symbol Shapes, Block Arrows,
Stars and Banners, Callouts, Flowchart, ...
So uno:BasicShapes will let you insert all available type of shapes
therefore the text label should be Shapes instead of Basic Shapes.
fix#4672
Signed-off-by: andreas kainz <kainz.a@gmail.com>
Change-Id: I692b7a5b03b905599648c7af4a016684b12b335a
This reverts commit dd83984896.
The logo style already exists and to avoid override rule.
Change-Id: Idf59f1acbc427ea8a33147398057de1883731830
Signed-off-by: Henry Castro <hcastro@collabora.com>
So we can type after we closed popup in the sidebar.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib4164cfa0b7b25b0a3aeeccdd9d0ac8c9bf7f280
- Only visible when macros is switched on (coolwsd.xml)
- Added to the File tab because:
- We do not have Tools tab and it seems we do not have a need or
more > 1 action that justifies an yet another new tab
- Run Macro could fall into Review or insert category but and
since the icon when pressed Runs a Macro, best to place it
within File tab since it affects the file. Plus user that is used
to operate within classic view it's more likely to go to File tab
Signed-off-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Change-Id: I8110fc259860d285f0c911b9b553bdc67235f4e2
Count data sent as well as received, re-factor, and measure B/W
usage too.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I5d00f0568c774cc03d2b8e4f730bfe4a8fb5b06f
After file server has been initialized,
it fetches external logo image.
Change-Id: I5d47287d5fa875c3e5825567d4ff284abe2ff500
Signed-off-by: Henry Castro <hcastro@collabora.com>
No need to complain when bind() didn't fail.
And assert when/if we are going to overflow.
Change-Id: I66f5ff1963c0afc6652afb5a7d017e197d945736
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
More consistent logging of the socket FD.
Change-Id: Iee24ad4eb067969abfc06f78a768563351d264c7
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
modify the test to use 2x2 table when testing 'insert column before/after' tests
no idea why we don't get svg when there is 3x2 table
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Id927fede691c4483206fa2b65c450f11cc980581
A corner case where read doesn't return 0
on a closed socket can result in a stuck
state where we attempt to read when we
do get ECONNRESET (which we didn't check
on reads).
This makes the interface of readIncomingData
the same as writeOutgoingData by returning
the actual return value of the read syscall.
So now we handle both return 0 as well as
error codes returned on failed calls.
The logic hasn't changed, just that now
we handle errors better and similar to the
write case.
Change-Id: I0b38a63da4e6c92a482948478d5d8d446e0b8b58
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
if comment is selected but is not in editing,
proceed to normal pasting in document
problem:
while pasting content multiple times with comment,
previously pasted comment stays selected and can't further normally
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ia594c725f4fe7108d6aea1591d88b2c306202be3
Otherwise calling getSelectionType() first and then getTextSelection()
creates the XTransferable2 twice, and then possibly converts it
to the text format twice, which may be expensive.
Also some cypress tests use selectEntireSheet() and then check
the clipboard contents, which with the switch to 16k columns in Calc
may be slow enough in debug builds when done twice to time out
the test, and this helps a bit there.
Signed-off-by: Luboš Luňák <l.lunak@centrum.cz>
Change-Id: If166f67c216281d32dbb1d3e10b51177b42a9668
Currently translated at 100.0% (447 of 447 strings)
Translated using Weblate (Hebrew)
Currently translated at 99.7% (446 of 447 strings)
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/he/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ib31ef778fdf841f6c5d98c2b3112b052dcf053d2
fuzzers use the code as a library, so we don't produce binaries like
coolwsd in such a config, leading to:
Failed to set capabilities on file `coolforkit' (No such file or directory)
when building from scratch.
Just disable setcap in the fuzzers case, it's fine to not have these
binaries.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I178ec7d8fa4d582e5d7289764a6ce2227c049205
- added a new menu button 'form' in classic and tab button in notebookbar for content control
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ibe06667de39199fd2541fa70ced3ff879274366d
we should do the same for other modifiers: shift, alt
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I75933194aee82589c787c8c31cc47b66e96e2066
Avoid std::vector and its peculiarities, also store the crc so
that we get the perf. win from it.
Change-Id: If39ab01b5b987d707d1712076ae9a5beb32b36c2
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
problem solved:
some times when cell cursor is moved using keyboard,
comments were not unselected,
which caused problems when copying cell which contains comment.
i.e: comments were pasted inside the cell as plain text
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I318c850c25956d210ef9acfa631a689a4d1a71c6
The DocumentBroker dtor adds a callback:
#0 SocketPoll::addCallback(std::function<void ()> const&) (this=0x377dce0 <Admin::instance()::admin>, fn=...) at ./net/Socket.hpp:773
#1 0x0000000000947db5 in Admin::rmDoc (this=<optimized out>, docKey=...) at wsd/Admin.cpp:544
#2 0x0000000000bb8192 in DocumentBroker::~DocumentBroker (this=0x61900000e690) at wsd/DocumentBroker.cpp:579
So even if the fuzzer called Admin::instance().poll() on shutdown, there
was one more callback inserted to the list later, leading to OOM in the
long run.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I0832d839b098407fa9e8aadb6f84388a85d62323
We have many fewer full tiles to compress - so we can
trade a bit of space for some speed. Really should use zstd.
Change-Id: I7c310608173c924f175154bf6f7abb43d5e6f08d
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
This added begin and end mark to the popup so we can detect
we are leaving the popup and we should close.
This prevents us from blocking the whole UI by focusing
map and typing before popup was closed.
Also close popup when server confirmed it should be closed.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I1a290e27dd7a14eca2cd3bb8368fee27255f51a8
Before the expander button was detached from input this in turn was:
- Making it hard to understand what that button will do
- Affecting the overall look and feel of the formulabar (different border-radius etc)
Signed-off-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Change-Id: Id17742aae8b09acd3bdcbffd05fe17181492322d
Add expand toggle class to parent and use it to align unotoolbuttons
Before, there was no way to know if the input was expanded or not by just looking at container
or any parent. thus, no way to fix alignments per MultiLine status
Signed-off-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Change-Id: Idddefc32812a3aab29ddb72c4d09bacd43b03287
some unotoolbutton was being set with the same same size as it's img child
- There is not need to do this only for :not(.has-dropdown)
- Make sure img has correct size, let parent element to adapt, no need to
single out this case
Signed-off-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Change-Id: I1c3734a81cb01a0d15604a2b88148a0f883a59d1
Formula input window (textarea) had different height from address input
- Set it at the same height as seen in toolbar.css:211
Signed-off-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Change-Id: Id0fc3dfb0335183050eedc00036b85dbafe2d0b4
Avoid using percentages when we can already use the grow property
(it avoids different results across browsers)
Signed-off-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Change-Id: I262cfdf5d72313296620e3e522bfa97ab2b00ca5
In order to get the list users and identify if it
is a guest user to not show the welcome dialog.
Change-Id: I439f46dcfd3ea5b307059952f98f49a387158e24
Signed-off-by: Henry Castro <hcastro@collabora.com>
Reset document info on idle
resetting document info will force to use new status of the document
problem:
reconnecting after idle, user could not type anything in document,
this was due to some properties were to set assuming they existed from last session (i.e: clientzoom)
resetting document info will force to use new status message and set all the properties again correctly
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: Ibcf395eee3a4e0b99413de0178331d42a1354253
We have around ~8k smaps lines for each process, polled regularly.
Change-Id: I7e78b17e52aeaec55fa17c5192a940aa9e44b045
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Don't use strings coming from uno commands as they include
"Insert":
1. There is no need to say that these actions will "Insert", they
are already in the Insert tab
2. All other actions do not have Insert so it would be not consistent
3. On top of that with Insert in each icon the labels look quite long
Signed-off-by: Pedro Pinto da Silva <pedro.silva@collabora.com>
Change-Id: I286e95187d5df08cdf2d71bd99f3b77a17ef12ad
Cleanup some debugging, distinguish wsd/viewport delta fetches from
client-side tilecombines.
Update tests for deltas where they are expected.
Change-Id: I3dca09e4ceb094abf03db2aed2618f19351f3e28
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
We concatenate several deflated streams back to back, and need to
decompress and apply each one by one.
Change-Id: Ic31f0eae27906f7817a877c98f4cd1e5ca4ee7f3
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Squashed from feature/deltas-expanded.
TileCache changes:
+ add montonic sequence (wid) numbers to TileData
+ account for sizes of TileData with multiple blobs
+ simplify saving and notifying of tiles
Sends updates (via appendChanges) based on the sequence the
right mix of keyframes and/or deltas required as a single
message, and parse and apply those on the JS side.
We continue to use PNG for slide previews and dialogs,
but remove PngCache - used by document tiles only.
Annotates delta: properly as a binary package for the websocket.
Distinguishes between deltas and keyframes we get from
the Kit based on an initial un-compressed prefix
character which we then discard.
kit can be forced to render a keyframe by oldWid=0
Track invalidity on tiles themselves - to keep the keyframe around.
We need to be able to track that a tile is invalid, and so subscribe
to the updated version as/when it is ready - but we also want to
store the keyframe underneath any deltas.
force rendering of a keyframe for an empty slot in the TileCache.
force tile sequence to be zero for combinedtiles - so the client can
always request standalone tiles with explicit combinedtiles, or tile
requests.
move Blob to Common.hpp
use zero size for un-changed tiles.
remove obsolete render-id, and color deltas in debug mode.
cleanup unit tests for non-png tile results.
Change-Id: I987f84ac4e58004758a243c233b19a6f0d60f8c2
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
It seems at least some storage hosts report disk-full
errors via 413. This logic of handling 413 error as
disk-full was introduced in
f8e0b8c11e.
Here we handle 413 as it is defined, as Entity Too Large.
Change-Id: I61297c2fab9de663643336a6eba47949f82d1737
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This enables code that was protected with
EnableExperimental in the socket logic (and one
case in DocBroker). These changes are now deemed
safe to enable permanently.
Change-Id: Ie62f5d7bd281ade90f38d654b51b104b8d1f14bc
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Read the print ranges for the current sheet from
LOK_CALLBACK_PRINT_RANGES message and draw dashed grid lines for the
rows/columns bordering the range.
Caveats:
* Desktop calc does not draw print ranges on document load if there are
print ranges set previously on save. Cool also has the same behaviour.
* If there are multiple print ranges in the same sheet desktop calc does
not show any dashed lines indicating the ranges. Cool also adopts this
behaviour for now.
* Styling of the dashed lines was not investigated much for writing this
patch hence it uses the same drawing style as normal grids.
Signed-off-by: Dennis Francis <dennisfrancis.in@gmail.com>
Change-Id: I318b679a232f2a6834d6e23278b24a9a96b70194
(cherry picked from commit eb94d9a864)
after the jumbo sheet patch selecting entire row and merging all the cells becomes costly and cypress timeouts
therefore select first 100 cells and test the merging functionality
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I8568bbdbabdccc55c2938f886619a1d178ae7d22
A problem since c6561a99d8 (wsd: test:
correctly stop SocketPoll in UnitTimeout, 2022-04-21), the trouble was
that calling UnitWSD::returnValue() from UnitTimeout::returnValue()
deletes the 'this' pointer, so we need to copy the interesting data
members to the stack before calling the base.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I86583ae516e2b2f367fbf5cb2a9401cc21f1b1cf
Currently translated at 59.9% (274 of 457 strings)
Translated using Weblate (Russian)
Currently translated at 59.7% (273 of 457 strings)
Translated using Weblate (Russian)
Currently translated at 58.8% (269 of 457 strings)
Translated using Weblate (Russian)
Currently translated at 58.2% (266 of 457 strings)
Translated using Weblate (Russian)
Currently translated at 57.9% (265 of 457 strings)
Translated using Weblate (Russian)
Currently translated at 57.7% (264 of 457 strings)
Translated using Weblate (Russian)
Currently translated at 57.3% (262 of 457 strings)
Translated using Weblate (Russian)
Currently translated at 57.1% (261 of 457 strings)
Translated using Weblate (Russian)
Currently translated at 57.1% (261 of 457 strings)
Translated using Weblate (Russian)
Currently translated at 56.8% (260 of 457 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (444 of 444 strings)
Co-authored-by: Mikhail Pershin <mikhail@frcdr.org>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/ru/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/ru/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I301ef881c66e494d98bfc113af731797bb824bf0
Currently translated at 96.9% (443 of 457 strings)
Translated using Weblate (Basque)
Currently translated at 93.2% (426 of 457 strings)
Co-authored-by: Alexander Gabilondo <alexgabi@openmailbox.org>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/eu/
Translation: Collabora Online/Help
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: If3e9602bbdcd5e5a6c82f7770b77f99bfab7ccf5
Some places tested for AMJ being the last column, but with 16k
columns it's XFD. Without this those tests run in an endless
loop when run with Calc set to 16k columns.
Signed-off-by: Luboš Luňák <l.lunak@centrum.cz>
Change-Id: I6249e0ec975634b60aaf3291e021b74b4aa3cc5d
added unocommand to enter rich text in classic, NB and mobile
created a new section to draw rich text rectangles
handle the callback for content control
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: If9912b3598729c26014519c4e1c3c65000b973a4
switch to ffffff instead of 222222 when the prefers-color-scheme is dark
Signed-off-by: andreas kainz <kainz.a@gmail.com>
Change-Id: I3e3c68879c6b6a831d5fbf095597ddae6eb51f77
Every number hours will fetch the latest version data.
Change-Id: I082d9ebb674058c6509dbd33537f24ec7cd9228b
Signed-off-by: Henry Castro <hcastro@collabora.com>
browsers having different themes make it hard to read the logs
this will help make logs more readable irrespective of themes
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I9e48f75d0f1ed20221c969db6d4a6ea00910717e
previously when used formulabar to type: "=SUM("
then selecting some range using mouse and "ENTER"
- referenced range was still visible
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I357b1ef51ad4d46e3e332decda0332ac4f9ad1d7
also color deltas as yellow when debugging.
Change-Id: I75e7f92708937adb31106e46e9771115320fb8d6
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
It will be used to instrument the return output size
Change-Id: I9f779ff5532d2181da6d6c98060859842e145c0b
Signed-off-by: Henry Castro <hcastro@collabora.com>
Includes a horrible inlining of minified zlib de-compression (MIT)
Change-Id: Iaf5f9f5e1215458836e26d45e48e436ee52c48ef
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
We want to always generate a delta vs. the last state we have so we
move linearly forward into the future.
Change-Id: I730d1dfb125a19e2c48b8f84ad5563664d196ab0
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
For each tile, the wire-id will grow incrementally for each key-frame
or delta appended; so we can tell which deltas to send.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: Ic5f201d23273c37eed232c5932b9da854e80d06a
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Makes rendering interactive again, and removes the async 'load'
from the delta application code-path.
Change-Id: Iaf95b24b299f6614b37f4188afcdbd95a4a8f673
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
jsdom requires that the tile is a HTMLCanvasElement element type
Receiver.dataMessage (private/mmeeks/deltas/browser/node_modules/ws/lib/receiver.js:51
7:14) TypeError: The first argument must be an object
at CanvasRenderingContext2D.ctx.<computed> [as drawImage] (private/mmeeks/deltas/browser/
node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js:124:17)
at TilesSection.paintSimple (private/mmeeks/deltas/browser/dist/bundle.js:1:136355
4)
at TilesSection.paint (private/mmeeks/deltas/browser/dist/bundle.js:1:1364132)
at TilesSection.<anonymous> (private/mmeeks/deltas/browser/dist/bundle.js:1:136981
2)
Change-Id: I55b77e3a9ae80afd519f1a6c6c5388070c85193e
Signed-off-by: Henry Castro <hcastro@collabora.com>
Should enable a multi-tile-processed optimization later.
For now lets us see which tiles are read & applied together easily.
Change-Id: I6e0bf13fc4df7b43503637d749753aaad828464e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Otherwise, if the user selects all the document,
the clipboard blocks Page Up or Page Down cursor jumps.
Change-Id: Ia9c432646c51063775bb7cca6a998e7d1cdcdbf2
Signed-off-by: Henry Castro <hcastro@collabora.com>
Also corrects the counting of number of active
sessions when broadcasting messages.
Change-Id: I5ab5995ed2cbc18b215542d0b2c9568957fd6a3a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We should always set the shutdown flag first.
Otherwise, we run afoul of a race condition.
Change-Id: Ic99793d68b3b943496ff932b4bdafd336fef7f82
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The static instances cause a lot of grief
when they aren't called in the correct order.
Worse, when we are cleaning up, we don't
even initialize some of them (Admin, for one).
This means that a normal exit will destroy
what isn't created, in some cases (Admin) it
will even force creating instances when we
are destroying others.
This avoid all this by simply exiting bluntly.
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
(cherry picked from commit 231fae4ebd)
Change-Id: I6a9443ca5ab999ed6ca1d27314136472cfc6ddb6
As Tor noted on IRC, this was forgotten when the actual protocol
commands were introduced.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I548ac73348bceb469484ce934f7548ddb4091b63
Subcontainer `root-container notebookbar` was not able to vertical align
contents even thought it has vertical-align: middle
- Fix it by removing parents' (notebookbar-options-section) height and
padding
The alignment is still off due to:
sub cell is inheriting automatic padding (useful in all other places)
- Fix it by remove padding for the cell under
.notebookbar-options-section
Display inline seems not be needed here, we can just inherit it.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iafb4f83acfff5ae0923afb972cefe1201080c79e
- prevent from multiple onDocLoaded calls
- use snackbar to ask user first before showing main dialog
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I1afb67c7bb403aa05c8e33ef48c0d55fa57350dd
so we don't have to change 2 places
also I've noticed only one place had
proxy support
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I64af9dac9bd8449fba0de3b05e0c2102e440788b
we added AllHosts to give admin the err log that host is not in alias_groups but now as we removed the host list entries from configuration we don't need that log
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I8b5e9e6b7df7df59befb496c12966c7ddc60c707
which is the same color as other container elements inside of it. If
we want to use a "neutral" color that can either be light or dark (due
to future plans on dark mode) then better to just create another var
for dialog backgrounds. For now better to fix (so we can avoid dialogs
such as the pivot table to be with multiple background and with less
brightness then the document that seats behind)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I848392e3c1194963273f2950a22022eeaadbe8f0
radio buttons were being render with a border surrounding them, example:
insert pivot table, all disabled radio buttons have a border around it
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I003280ec929b49c8f8f0a1b9a4ca361c87a9224f
This was impacting alignments on dialogs. Example Find and replace,
checkbox were being pushed tot he side. Better to rely on parent
padding or table structure
also with 496256a96b -table is no longer
in use
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I60b29f818e8ec53f5c66a2772f4cda82de0011bf
Example: macro select dialog is getting set with multiple inner margins
- Simplify the CSS so we only target one sub element
- Remove unnecessary code (no need to add exception for sidebar and
formulabar)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ibc35e6b8c37badbbe27b411c21986ddda0e27ef3
with 496256a96b we no longer need the
pre fix -table in the ids plus better to just remove any non essential
bits and share more CSS between places
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ica8ef3db2ed52a379cb75437d7b147c8b42bbd7b
from: 496256a96b
- let's not target absent ids on the CSS side
- Also better avoid target boxN (e.g.: box3)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I41bf1540c634dcde8111ae0192a70772153c592b
This went wrong when the forward-port of commit
b96e8b7c77 (wsd: correct use the exit code
from UnitWSD, 2021-11-29) didn't adapt the string to the updated
filename.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ica8047dc05dedf9e075663f405dea89913cf789a
Identified the faulty test, on heavy load the test gets stuck on waitUntil command
skipped the test for now
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ia4b7ca081098e7e5b6f15135304131521629e524
@media (prefers-color-scheme: dark) setting
is available by use color-scheme-dark.css
instead of color-scheme.css
sure the scheme need some update
but there are other open points like
use dark color for document
use dark colibre icons
this is only the .css change
so no full dark mode update
Signed-off-by: andreas kainz <kainz.a@gmail.com>
Change-Id: I5c2adcbb75583a952f419af507d7cfe5c1343e3c
remove padding-top: 5px so there is no scrolling
needed for two rows.
Signed-off-by: andreas kainz <kainz.a@gmail.com>
Change-Id: I9a0450074cc55486d0f7de8a39b7edff8e66c752
border on left and right so it work also for RTL languages
Signed-off-by: andreas kainz <kainz.a@gmail.com>
Change-Id: Ic973cfee4c8fd563008477ab38a9e4e3e69c8300
Signed-off-by: andreas kainz <kainz.a@gmail.com>
This way, there is only one entry point for all the remote
configuration, and the remote_font_config does not have to be specified
in coolwsd.xml, in case the remote_config JSON specifies that.
Signed-off-by: Jan Holesovsky <kendy@collabora.com>
Change-Id: I857bab3d300ddb5c0c3df0a9f62eda20f43c3ff7
Currently translated at 100.0% (444 of 444 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (444 of 444 strings)
Co-authored-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Co-authored-by: Pedro Silva <pedro.silva@collabora.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt_BR/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I23cc55c918f72a8cc91429c03fa86f4e101a664c
Currently translated at 100.0% (444 of 444 strings)
Translated using Weblate (Slovenian)
Currently translated at 99.7% (443 of 444 strings)
Co-authored-by: Martin Srebotnjak <miles@filmsi.net>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/sl/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: Ie519a835e45d5308e3dac9eb19b879f19dc1b726
Currently translated at 68.4% (313 of 457 strings)
Translated using Weblate (Dutch)
Currently translated at 67.6% (309 of 457 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (444 of 444 strings)
Co-authored-by: Sebastiaan Veld <sebastiaan.veld@gmail.com>
Co-authored-by: sebastiaanveld <sebastiaan.veld@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/nl/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/nl/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I5690268d76c984a1920fc232c5b405b7e02a9806
Without knowing whether the write succeeded
or failed, we cannot trust errno has our
error or some earlier and unrelated error.
This was caught when there were two sockets,
one of which disconnected. The write to the
disconnected one returned -1 and set errno
to ECONNRESET. We subsequently wrote to the
second socket, which succeeded. However,
because errno wasn't reset, and since
writeOutgoingData didn't return anything
to indicate the success, errno's ECONNRESET
value meant the second socket was also
disconnected, which was incorrect.
writeOutgoingData now returns the last return
value from writeData so we can make informed
decision as to whether to check errno or not.
Also, to avoid incorrecly propagating errno,
we now capture errno only when readData and
writeData return -1. This has the nice
side-effect that we reset errno to 0 when
no errors occur during our call.
Change-Id: I911b31390f37cc71938bc4a6ae75393dbf24bb9d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
- also hide autosum button - it was hidden before conversion
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I68e9301a1b3a1b3710ca4da940152839bdc80c18
In the past I've seen very often that for example
commentList section was missing but used without any
check.
This commit checks if section exists before use and
warns if it doesn't so we can see that in the console
logs.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Idca23c5327f5b36277479fcd3f44b92920466474
The additional margin was affecting the surrounding elements in some
browsers in the sidebar
Better to not call padding-right or padding-left specifically:
- Better to use shorthand and make sure how the final padding will be
- Better for RTL
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia61d670580258187f9fd538dcc2f2a2e20be3bdf
use the same font-size for listox no matter where it's placeholder
- Multiplying would make it look too big in some places
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I6436baea5ed3018e4c4cad6078fdb51bfa0d068e
with refactoring from 2da8de38df1660b205392391ebada7759ee8e2d6
and with the code now in onw place we can now use the 28px height that
was used only in the sidebar to have the same visual component be that
on a dialog or on the sidebar
- Reduce from 32px to 28px (the opposite would make the component too
big in the sidebar)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4d11f74219e55a2a05e0f1c9f70ff9a8c4a88c54
Avoid to place rules within jssidebar.css that should be global
(it should affect any jsdialog class) and let jssidebar-only exceptions
in jssidebar file
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib950f5c13522f3d91139d8eac52b5b4daa22fe05
When using position relative the elements will still occupy and affect
space around. This was flagrant when using chromium.
https://archive.org/download/t-34772-writer-selected-img/T34772-relative-shouldbe-absolute.png
as you can see dropdown with arrow are being dragged outside
Also use margin-block-start to add vertical start margin (e.g. top) to
element depending on the element's writing mode, directionality,
and text orientation.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: If580fba061d8cb274a60ad5f780882c772059162
When using position relative the elements will still occupy and affect
space around. This was flagrant when using chromium.
https://archive.org/download/t-34772-writer-selected-img/T34772-relative-shouldbe-absolute.png
as you can see the spinner with units are being dragged outside of the
screen
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I292f83dc4840ceb1e12923a9aaf1fe56dbe14131
When the coolwsd server is ready, begin to
fork the load.js process to start the tile tests
Change-Id: I7846ce013b729eab54e5fd3ab81ce396406bcf0b
Signed-off-by: Henry Castro <hcastro@collabora.com>
To signal SIGUSR2 to parent to notify
that the server is ready to accept connections,
and begin the tests.
Change-Id: Ie936217243aa7a2e836f3d45cb508ede13fae8c5
Signed-off-by: Henry Castro <hcastro@collabora.com>
previously without data in localstorage it started with
compact mode always
- reduce calls to local storage
- unify local storage entry name (no doctype)
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2bf4776a6296d2c35ac974b3d108bce5e77a7614
This is a temprorary patch until we can properly
migrate the verification code to openSSL 3.x.
Change-Id: I676ae3b5a1e0d27ef1d253dba2275f7de5fc08ff
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
If I have used a path with symlinks in it when changing directory to
my build directory, what gets put in config.status as ac_pwd is that
path, not a realpath version. That then propagates to
ac_abs_to_builddir and to SYSTEMPLATE_PATH, which is what Makefile.am
passes for the --o:sys_template_path option to coolwsd.
To be on the safe side, do the tmpfonts dance both for the systemplate
path that might include symlinks and for one that has been realpathed.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I7575120090986e6207497c5ce740aedd6075e48f
we preserve original reason,
so setting default reason means always using default reason
and ignoring any other reason
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I837a13a129aa759a319406affc6e89425bf31361
This also makes us sure we are in sync due to
single point of knowledge about UI Mode
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ifefeee90666db7c341da52a7190ef09749b8e3ab
This avoids the runtime overhead of strrchr used
in logged filenames on iOS, which is unnecessary
on string literals, and adds unit-tests.
We also strip leading './' and '../' in other builds.
Change-Id: I56ec722d1400fad9165eb046d1bd8d4438241ca3
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Normally these kind of button wouldn't need a tooltip but:
1. Doesn't hurt to add it
2. It helps the user with understanding what that btn does:
- The button doesn't remove the current opened document
- The button doesn't save and close
- The button closes the document
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I45e63c4c7f42d314743702e6ff50b777527c4367
All NB items ids have EachWordCapitalized and are successfully target by
users/partners/users to change image for example, and expect them to be
have EachWordCapitalized:
- Notebookbar: Make rev-history -> Rev-History so it also can be
- Classic: Id remains "rev-history" in the case integrator rely on that
specific lowercase id
- Allow rev-history and Rev-History when checking id (Menubar.js)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I7a5a31f78713fe43e1855021652500d0306c5ac4
All NB items ids have EachWordCapitalized and are successfully target by
users/partners/users to change image for example, and expect them to be
have EachWordCapitalized:
- Notebookbar: Make saveas -> SaveAs so it also can be
- Classic: Id remains "saveas" in the case integrator rely on that
specific lowercase id
- Allow saveas and SaveAs when checking id (Menubar.js)
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia92a442eadb34c4b4ae374e54835d7866f70df7a
context: https://archive.org/download/repair-doc-close-misaligned/repair-doc-close-misaligned.png
line-height, if the hard-coded px is needed, then it should be the
same value as the width and height so not 28px but 32px
as it's the values used in a.leaflet-popup-close-button.
But better to just rely on the unitless value that line-height can
accept then it will fit whatever the font-size and width the anchor has:
- Fix it by letting the web browsers align the content for us. Web
browser multiplies our number by the font-size value (1 times font-size)
, so no need to depend on specific px values for that.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4145231241a9acc540c684971e3bde46adb2304b
The commit message of this commit was correct but it seems I end up not
git adding the latest change which obviously is not initial but 1.
This reverts commit c80d4ca62e.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I999e7e51ee36e4c162cc8d0a15bc9850fdd9c1fd
context: https://archive.org/download/repair-doc-close-misaligned/repair-doc-close-misaligned.png
line-height, if the hard-coded px is needed, then it should be the
same value as the width and height so not 28px but 32px
as it's the values used in a.leaflet-popup-close-button.
But better to just rely on the unitless value that line-height can
accept then it will fit whatever the font-size and width the anchor has:
- Fix it by letting the web browsers align the content for us. Web
browser multiplies our number by the font-size value (1 times font-size)
, so no need to depend on specific px values for that.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4145231241a9acc540c684971e3bde46adb2304b
if right clicked on already selected row/column range,
don't reselect the right clicked row/column
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I718a0a727913c38bc506fd2b808fba8feaebb0c8
starting with co-22.05 core we don't need old
autofilter code as it is now unified with popups
handled in Control.JSDialog.js
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I613d76950c9c9d727be958607d25793a3a69c28a
Context:
Repair document on the Notebookbar is currently always a small item
https://archive.org/download/repairdoc-writer-smallitem/repairdoc-writer-smallitem.png
,it should be a bigtooltiem when the extra additional/optional item
Sign document is not available:
- Set it to small item and vertically stacked when hasSigning is true
- Set it to bigmenubartoolitem when hasSigning is false
Note: Make use of the newly added bigmenubartoolitem in
8d149d31db
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I26a8e1b721bf2550127eff1ccfdc44ab4876db52
this will allow us to avoid doubled messaged
and ugly bugs, setting selection in JS works as
async call and it's hard to not trigger own handler...
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ibeae30c04374116776413b19ebd8efca043e9c0e
this patch handles formulabar generated with jsdialogs
for core version which supports that (>=co-22.05)
- jsdialog formulabar is implemented in Control.FormulaBarJSDialog.js
it does translation so instead of drawingarea we got input field,
later it sends events with modified type so core doesn't know about
any change in widget type
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I690409ec2e83e803ed9dfe3544e68b6521ae768d
This will allow us to improve code sharing between jsdialogs
and menubar / toolbars.
In the future could be used instead of special buttons which trigger
actions from menubar in jsdialog (what creates temp Menubar instance...).
in jsdialogs toolitem which will trigger shared action from map.dispatch
is a type 'customtoolitem'
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: If528e8eb142b76d24cb9145cb265a505e7e9a5df
so we will not have problem with updates not catching
widgets with modified name - not needed not
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ifa29d3971120482c3dae4ede3db5bcf31ea1af95
example: toolitem without uno command but id
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I198fa3838e714251936de90f11e1d8d857025eef
- we need to create all widgets
- later we receive update events...
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I766f28e012c7b9ce3cb33478cdc3e55cd44eaa83
- symbols are standard images for buttons
- are shown as images: "symbol_<SYMBOL_NAME>.svg"
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I034c07ad299376837f65726f7ec1bceabb50ba01
Since we have the ability to quarantine documents,
we should save to disk even (or especially) when
we don't have a storage instance. This way we
can at least recover the document.
Although it's not clear when we will not have
a storage instance, if at all, separating saving
from the storage state is reasonable.
Change-Id: Ifa51ed3229424b567df8218b201ef914226db947
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
No need to indicate that those components are toggles since they
visually communicate there. Plus we are not using that prefix for
other toggles like "sidebar"
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Idb99d1e8505feb3adaa9378f0f96309cd3cf7158
bigmenubartoolitem and inlinemenubartoolitem are items
which are able to execute actions defined in Menubar code
to help sharing the code
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0f16320fb1f2bcb14b16e79f89b92617c8f9117e
- retry if we didn't receive confirmation from core
- required by core which sometimes have to ignore our
request to activate notebookbar
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I1954ebf832772014c2c3caae25d84646f1734260
OpenSSL 3 deprecated the manual DH parameter
functions. Instead, it encourages the use
of the built-in parameters. Since this
API also works on the 1.1 version, we only
need the manual parameters for older versions.
Change-Id: I900cc11c3ca09f1d85b7d88cfbf537d802f69846
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change the syntax of the remote font configuration JSON file. Now for
each font we can also have a "stamp" property that can be a time stamp
or whatever other random string that gets changed (by some automated
mechanism provided by system integrators) whenever the corresponding
font file has changed. If a such is provided we don't poll the ETag of
the font file but re-download it whenever its stamp in the JSON file
has changed.
The remote font configuration file now should look like this:
{
"kind": "fontconfiguration",
"server": "My pretty server name for admin console",
"fonts": [
{
"uri": "http://localhost/tml/MS33558.ttf"
},
{
"uri": "http://localhost/tml/SmoochSans-VariableFont_wght.ttf",
"stamp": "foo0"
},
{
"uri": "http://localhost/tml/B612-Regular.ttf",
"stamp": "foo3"
},
{
"uri": "http://localhost/tml/xxx.ttf"
}
]
}
Where the value of the "stamp" properties can be any non-empty
string. The JSON file is checked once a minute. If it has changed it
is re-downloaded, and if the stamp of some font has changed, that font
file is re-downloaded.
When a font file is re-downloaded it is stored in a new file each
time. The old file is not removed as that will cause problems in
ForKit and Kit processes.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: Ib04b77e0fb9e1d9c33afdc14a5fed3ad0b12a409
This reverts commit 7e6f3d5590.
Because we have split online into branches, doesn't need to support
both cores and this fixes translation generation
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ib0f3dff74f5006321bd80e43100d58093f43b4d5
Since both implementations are identical, there
really is no benefit to having two version.
Change-Id: I4a5288243291c0d5706df8e8870b918fab425317
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Since the json parser logs an error when the
entry isn't found, parsing both LOOLStatusCode
and COOLStatusCode almost guarantees at least
one ERR log entry. We should only fallback
when COOLStatusCode isn't found and avoid
erroring when we got what we wanted.
Change-Id: Icace964820c250f4ceba98281e57cb7c29fbd118
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
coolwsd_fuzzer predates actual fuzzing
with libfuzzer and is currently unsused.
Change-Id: Id095b165943ba14dbf525ddc607ad329f5d952d4
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
We use -fsanitize=fuzzer-no-link when fuzzing is enabled,
but we fail to consider if other sanitizers are enabled.
It is usually the case that asan and ubsan are enabled
when fuzzing.
The fuzzing check is now done before the sanitizers
and the result is combined.
C++17 check is now improved and so are a few messages.
Change-Id: I44e36d19d77a47c21245b5fe9e690d860f91e84c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This reduces the build time significantly while also
minimizing the disk-space requirements for builds.
When configured with --enable-fuzzers the fuzzing
target binaries are built.
Change-Id: Ia8560d876f548d04ac085503e55a3a5dca90f590
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The ifdef conditions seems a bit over-complicated but as long as it
compiles it is good enough for me. I don't remember the details from
my earlier work on this.
Also move the inclusion of svtools/strings.hrc after the inclusion of
L10n.h so that TranslateId gets defined before it is used.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I9a1873dc3676c15c7fb4cde84c0e14bf56653443
Just a to make the sparkline actions accessible from the menu
and notebookbar.
Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: I80a483397184a8a9c0eb28048b3636ec91b95081
devices-mobiles.css
- rules for mobile wasn't needed
everywthing is in welcome.css
welcome.css
- screen behind welcome dialog use --color-overlay
as at every dialog
- no fixed width and height
max-width and max-height was the old width/height
width and height are now 95%
dialog window was center justify
- content width is 96%
when smaler than 500px padding was added to <p>
- fig get top an bottom margin
so now all fig's have the same height
- hyperlinks use --color-primary
and not underline
Signed-off-by: andreas kainz <kainz.a@gmail.com>
Change-Id: If921bc2abc3977930f7d60256d8011d8986a22c9
textarea focus makes firefox zoom in without
specifying viewport scale properties
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: Iea5c0e61af14dc8f05319570f84681ca2b76aed1
Screen size changes reacts keyboard states also updates the cursor
overlay. We are already avoiding this for mobile wizard, we need to
do the same for feedback iframe popup
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: Ic701847a1e81f672f9244f09e59b6fb8b5bc12d0
now we dont need to click on the collapsed comment
because now after insert comment they will be selected
already.
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: Ica69e5a092f29896c1d872deb384d31b867dddc6
comments can get beyond the screen in a long list of comments
when selected and we need to manually scroll to up to see
the actual position of the selected comment. we must auto
scroll to that position instead.
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: If92e15839c0ff68cddf6558dccc8b6d113095d93
Among Long and crowded list, comments can get lost when they are added
unless we select it. When they are selected they are highlighted
on the same level of the annotated text.
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: Id804dd26ce929f1db8f4b5ba05d5937c433e0018
The coolwsd.xml file can now contain a URI of a JSON file on some
server that contains URIs of fonts. These fonts are downloaded to the
coolwsd server. Just like the remote configuration thing, the URIs are
checked once a minute and the JSON or the fonts mentioned in it are
re-downloaded if their contents has changed.
If a font has been removed from the JSON file then the corresponding
downloaded could be removed, too. But there is no way to remove it
from core without restarting the whole COOL server, so we don't
bother.
We need to put the font in such a place so that its pathname is the
same both in the ForKit process (outside any chroot jail) and in a Kit
process (inside its own jail(), because even if it is in the ForKit
process that we call the LO core vcl API to load a "temporary" font,
code elsewhere in LO core re-opens the font file later, naturally
using the same pathname, when it is needed (see
FreetypeFontFile::Map() in vcl/unx/generic/glyphs/freetype_glyphcache.cxx).
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: If78058ddff5ed05c7a82d7ea465a7a414fd0d861
This provides possibilities of more reliable testing and debugging.
See the comments in "docstate.js" file.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I28ba2098cbe7e206f363fb2b0acbf5c5c2bf155d
"socket" and "console" variables are used at initialization, so they are left in global.js file.
Debugging of window.app object's variables is now easier.
Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: Ic2811ff45ce845cb32d15018eaa2fa9e140202d7
Currently translated at 100.0% (442 of 442 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (441 of 441 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (441 of 441 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.4% (432 of 439 strings)
Co-authored-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Co-authored-by: Pedro Silva <pedro.silva@collabora.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/cs/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/pt_BR/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I72dfd49276dee8427404b63a1ae488df47e783aa
Remove the `as` from `Download as` because in here we have a dropdown,
it is already clear that the component is not an action in itself but a
dropdown to trigger more actions. If this was not a dropdown but
instead a toolitem that triggers a dialog, such as `Save as`, then it
would make sense to include `as`, but that is not the case
Related issue:
https://github.com/CollaboraOnline/online/issues/4564
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I65de9570800756e026d20534a84d52c29d4f8bd1
As discussed in https://github.com/CollaboraOnline/online/issues/4564
the current lc_downloadas2.svg is quite different form the surrounding
icons
- Remove and use new download icon more similar to colibre theme
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I5808af8a50c1f8025b38502ba5fcd2db3f98c9d5
The last burst of data arrives with POLLHUP.
If during the read we hit any errors, including
EAGAIN, for whatever reason, we may lose the
data if we don't attempt reading again later.
The only way to guarantee that we do not have
any more data to read, when we get POLLHUP,
is to poll until we either get no POLLIN or
read returns 0 indicating the socket is closed,
Oddly, read(2) sometimes returns 0 without
POLLHUP ever being set, and sometimes we
do get POLLHUP while POLLIN still set. This
implies that poll and read aren't consistent
in how they detect and report the close
condition. Luckily, with this patch we can
handle all cases without any complications.
This was caught through simulateSocketError,
which when it injects EAGAIN on the very
last read, when the socket is closed, causes
error as the response is partially or
completely lost (because we never read it).
The behavioral change should only be
observable with EnableExperimental.
Change-Id: I77260f98d5dd5050c5f9b202b9effd501191336b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The new helper corrects inconsistencies in
detecting writable sessions and improves
readability.
A writable session is one that is either
not read-only or can change comments
(in PDFs, which are otherwise read-only
documents).
Also fixes a bug in reusing the last editor
session to save. The condition should've
been !isReadOnly(), since sessions used
for saving cannot be read-only. Indeed,
the last editor couldn't possibly have
been read-only by definition.
Change-Id: I9860be287057050eca692568d43f77371964f80b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The inWaitDisconnected state is mutually exclusive
with isViewLoaded. So that check was completely
useless. Instead, we want to check if the session
is still connected to the client, since isViewLoaded
implies that we aren't disconnected from the Kit.
This moves this logic to a helper in ClientSession
and streamlines the implementation of
DocumentBroker::countActiveSessions().
Change-Id: I06459708e4c59566aa2e2f1febdfdfe8dd491c35
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The stop flag may be set through the callbacks
that the poll fires. In particular, errors
during socket plumbing can set the stop flag.
Since this flag is final and immediate, there
is no need to do the normal processing and
check it on the subsequent iteration of the
polling loop. This reduces the wait and we
clean up faster.
When we don't check for the stop condition,
we may end up uploading an extra time.
This is particularly problematic with
always_save_on_exit, which forces the
upload. Since it sets the stop flag
after it uploads, we should detect it as
soon as possible and no do extra poll.
The change is guarded by EnableExperimental
to avoid unexpected behavior.
Change-Id: I67815e70383caabaf29aa4921e0c421c3e5ff96c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This extends the detection of connection termination
for writes via ECONNRESET and EPIPE.
For some reason ECONNRESET was not detected.
This patch avoids extra polling to detect connection
termination and makes the cleanup faster.
The changes are guarded by EnableExperimental to avoid
any unexpected change of behavior.
Change-Id: I2ae3803f025d3cf756f86460e47aedc984249509
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Introduced in 71ef338dc5 and in
8e815bdff4
this creative invention of new UNO commands is not the way to go.
We cannot invent uno command names and add them to unocommands.js, that
is a generated file, and generated from core. If we cannot pick the
desired string from unocommands.js, as last resort we can write out the
text, e.g. _('Column Width').
Affected:
.uno:ColumnWidthMenu,
.uno:RowHeightMenu,
.uno:ColumnFormatMenu,
.uno:RowFormatMenu
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I93adca8b416ae986171af2771adf4007d76d6422
Add new svg icon
Add menuitem to Layout tab with all the missing commands
Note: EditPrintArea was not be added because:
It triggers a dialog that is not async at the moment. When tested with
multiple users within the same server it does not work. If the one user
opens it the other one is not able to open it at the same time.
AddPrintArea was not added since it can also be problematic when multiple
users edit the same document.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I276b6ab08b0f541aba9211d2595786a835d873b8
There was only one way to successfully set a print rage: by defining
name ranges first and then within the dialog the tick the checkbox
'print range' under `Range options` expander.
All the other expected top menu entries within format main menu were
missing, Add except EditPrintArea and AddPrintArea:
- DefinePrintArea
- DeletePrintArea
EditPrintArea couldn't be added:
It triggers a dialog that is not async at the moment. When tested with
multiple users within the same server it does not work. If the one user
opens it the other one is not able to open it at the same time.
AddPrintArea wans't added because it might also be problematic when
multiple users edit the same document
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I943e82a005b485130833cf46e4687dde6a3e6e3f
Luckily the UISceneOpenURLOptions has a property openInPlace that
seems to be good to use for this. If openInPlace is false, that means
we should open the document read-only.
This is a stopgap fix to avoid the situation where the user does
changes to a document that is an attachment in an email message. Those
changes won't be saved anywhere they could be found later. Better to
keep the document read-only.
The ideal solution would be to ask the user right away where they want
an editable copy of the document to be stored. Later.
Signed-off-by: Tor Lillqvist <tml@iki.fi>
Change-Id: Ifd7d824d4f73cbf458f8597cd0974cf171b35be7
We keep open documents in the view controller stack. If you already
have one document loaded into this app, and then in Mail select an
attachment or in Files select a document to be opened in this app, it
will be loaded so that when you close it, you will be back editing the
earlier document.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I921907a2cbf8220a45b6dc0f304ba7eaec0befbc
WhiteBoxTests.cpp is by far the slowest TU
to compile (taking minutes) and gcc started showing
'note: variable tracking size limit exceeded'
and recompiles, which doubles the time.
This moves the StringVector tests into a new
home, which reduces the size of WhiteBoxTests.
Change-Id: Ia4e8daa921fb941815ad7e68f4dbb964fb2cd93e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
In an attempt to reduce the size of Util.{c,h}pp
which has grown to contain all sorts of unrelated
helpers, we move StringVector helpers into
the StringVector.{c,h}pp files.
This makes the code better organized.
Change-Id: I152f341606807ae66253415b951bc9f89b09df57
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
And cleanup includes to reduce build time.
Change-Id: If2e242e6688b788b91d62351ef555b31aad1ecde
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
WhiteBoxTests.cpp is by far the slowest TU
to compile (taking minutes) and even gcc gives
'note: variable tracking size limit exceeded'
and recompiles, which doubles the time.
This extracts the RequestDetails tests into
its own file to better parallelize the build.
Change-Id: Ic8d54d06223a122bc1ccf73cfa216e2b3a8f32a5
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Currently translated at 93.6% (428 of 457 strings)
Translated using Weblate (Greek)
Currently translated at 99.7% (437 of 438 strings)
Co-authored-by: Theo <tbousiou@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/el/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/el/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I0d1f890be83be35a44ad3b5d2991a65f9febc931
* Use unix line endings.
* Use tabs instead of spaces to indent.
* Remove eslint-disable flag.
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Change-Id: Ic7fe77097c0e1b652636e5771fd4835d547ffa90
Currently these options were only accessible via ontext menu
- Expose these row and columns format options (height and width) also
in the place user expects to find it (in classic mode): Format menu
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib83c11345407394eef4d90d9c350a9e015291e93
Before we needed an exception for the StatisticsMenu, to position the
arrow. Now this is no longer needed. The component get well placed by
default
- Remove CSS exception and fix the inconsistency:
https://archive.org/download/cool-nb-bug-arrow-statistics/cool-nb-bug-arrow-statistics.png
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I7cf46c7c3d2593b571c91c0dedc197fdcae3a7ee
Layout tab does not have the:
- optimal height/width
- width/height
User expects to see those options in the Layout tab (as in LO).
However it seems in LO those menus have all the row/column related
options and as this might be worst for the tablet/touch screen laptop
(to have all those option hidden in the dropdown) and since we already
have the insert/delete options as icons:
- Simply add height and width specific menus
https://archive.org/download/notebookbar-layout-add-row-column-menus/notebookbar-layout-add-row-column-menus.png
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iebdc6df833bb3cb9d125e23be01e5197ec0d80c3
- run autofilter as normal mobile wizard not a popup
so we will use old styling (compatibility)
- close correctly popups so we can type after closing
autofilter
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I26957e745c8bee9cece4cae2cc1ecd58c9341d23
it is easy to block the input in the app if we didn't close
popup on the server but already deleted HTML elements for it
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I91bd08d09a75a111dffd3525601dbff04652407f
- in 22.05 core autofilter was welded and converted into regular popup
- for now we have to support both versions for 2021 and 22.05
- leter we need to remove Control.AutofilterDropdown.js
- special handling in Control.JSDialog.js should be separated later...
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I2c3aec1f2c18472d79024a0cf586e61f9339759a
This change adds all the new sparkline UNO commands and whitelists
all the sparkline UNO command for the context menu.
Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: I9dd6c4df9fd0ab9a6472e011b240a0fda7fc1ca3
changes, mainly in Chart Editing Panel
(select chart -> press "edit chart")
- simplified sidebar panel label with arrow
arrow has simpler rules without left/right (for RTL)
- turned off margins for .jsdialog.root-container
what caused elements to overflow in chart panel
(eg drawingarea with chart types)
- changed panel width definition from fixed pixels to
"100% - scrollbar"
- RTL: converted left/right -> margin-inline-* for some
spinfields in chart panel
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I3cfa1b0aa6ed1fdf3cf8ff54474c0c3e6ec94aaf
When the focus is lost, TextInput actually removes the mouse cursor
but there are other functions that sets the cursor and we need to
check whether the cursor is deleted or not before we set it.
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: I57622d9a7156148ce2a3cdbedc1af551581d0f8a
Currently we only allow user to interact with columns' optimalWidth
and rows' optimalHeight but those are different from setting width
and height:
- optimalWidth/Height allows the user to in a swift interaction remove
all extra space surrounding its contents from those selected
columns/rows
- Setting width and height are just that forcing a particular size on
the selected columns/rows no matter their content
Add possibility to set:
- Row's height via context menu
- Column's width via context menu
Screenshot comparing what we have VS what user expects (LO):
https://archive.org/download/cool-bug-missing-heighwidth-contextmenu/cool-bug-missing-heighwidth-contextmenu.png
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I7c5335f4996b57dac1f8062e71e7132682d174cf
The webframe buffer size used to be READ_BUFFER_SIZE (64k), but that's
no longer enough in unit-uno-command since
<a20e761cb1>
(jsdialog: fix toolboxes with children, 2022-03-17) if you have enough
fonts installed locally, because one toolbox in Writer is the font
dropdown, and that lists all the fonts you have.
getResponseMessage() already uses this increased buffer size, so this
also improves consistency.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ic2ad0e8e7443365395b16618d6c82465252ba455
When working with tables it is now possible to to slip cells
where: Top menu: Table -> Split Cell...
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia242358245cebb6bded55aa995bd8c80900b9aaa
current approach is lacking the acceptInput state
because when we close the keyboard we need to set it
to false when we hide the keyboard otherwise canAcceptInput is not going
to change and controls for that will fail such as panStart and panEnd in
TouchGesture. Pannig while the mobile wizard is on causes keyboard going
on top of the mobile wizard and after that it causes endless screen
flickering.
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: I3248ef7f344fe53a57b7c77f4222d1fed5740896
when we decide the keyboard is closed by checking the screen size
we should not force keyboard to close again instead we just need to
set the state
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: I486cda0598ab02e426aefd726475f0e70e0eee52
In NDEBUG builds, where there is no assert macro,
we log at debug level to still find issues without
adding noise to the logs.
However, in ENABLE_DEBUG builds not only do we assert
but we also log at error level.
Change-Id: I773dbf7bb2b459e505e73d91505b13d8ed2ed6d8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Also makes the test more stable by
avoiding racing the first save with
the subsequent modify, which is now
delayed until the save and upload
are done.
Change-Id: Icdebc3f9f5a4d4ef680cb04fd32a85433d645e07
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This primarily combines the string-literals
that form the filename and line number to
reduce four calls to operator<< to only one.
Also fix LOK_ASSERT_STATE to use its argument.
Change-Id: I5e8eeb4f862fe8679b1e1f7a57412dc84dc30e92
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
UTF-8 is expected to encode a code point using 1 to 4 bytes.
Also check that the promised chunks are there before accessing them.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I9b4f346738865fc18242e51a33c97e5b38ee90d8
Due to recent changes on the color palette mobile wizard has changed
color from white to gray which causes the hamburger menu to appear not
going full height:
https://archive.org/download/cool-bug-mobile-hamburger-bg/cool-bug-mobile-hamburger-bg.png
Make sure hamburger menu uses the right color
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I4263ebf8f92979ffd5a5657fceb76843594d4d54
Save icon (blue tick) should not be visible at all when the hamburger
menu is open
On Calc and it is also needed to hide formularbar while hamburger menu
is open because otherwise the it affects the size of the toolbar-wrapper
and consequently affect the flex box and how the hamburger menu gets
aligned
before: https://archive.org/download/cool-bug-mobile-save-above-back/cool-bug-mobile-save-above-back.png
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ifa5406a5a5c31172cde82e843949671fa95c6596
fix: in regex, escaping special character fails to find host of the alias
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I19bfacc5e45af26832cb8c6a7d249e0c7de56624
- first host is by default allowed without any condition
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Iacca38868f06a417cbb99984e2dac1eef727df6e
the state is explicitly set by the first view but on makeRenderParams
function we dont check if the spellonline is empty or not, if empty
we should not change the state. It is only empty for views after the
first one
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: Ief5754bdae2eb952c2df9485fa323fc957da40a6
Running command in /home/runner/work/online/online: [/opt/hostedtoolcache/CodeQL/0.0.0-20220311/x64/codeql/javascript/tools/autobuild.sh]
[2022-04-05 08:02:27] [build-stderr] Skipping path /home/runner/work/online/online/**/*w2ui-1.5.rc1.js, which does not exist.
[2022-04-05 08:02:27] [build-stderr] Skipping path /loleaflet, which does not exist.
[2022-04-05 08:02:27] [build-stderr] Illegal '//' in exclude path
Error: 4-05 08:02:27] [ERROR] Spawned process exited abnormally (code 1; tried to run: [/opt/hostedtoolcache/CodeQL/0.0.0-20220311/x64/codeql/javascript/tools/autobuild.sh])
A fatal error occurred: Exit status 1 from command: [/opt/hostedtoolcache/CodeQL/0.0.0-20220311/x64/codeql/javascript/tools/autobuild.sh]
Signed-off-by: Jan Holesovsky <kendy@collabora.com>
Change-Id: I3bcaba31d24e9010af7d4736722cd2413d9e2ce9
Ensure that rendersearchresult: is terminated, and identified as binary.
Change-Id: I84e83c63351cd0aac0923bf7c833b14c1be2c051
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
most of them don't have the text where they need to have
otherwise the text is defaulted to id. We can use hint prop
to text because it has the same output due to the uno command
name convention.
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: I0dd38ebdaaa95c41225c49e02d7615007e8a4049
Add to elements that should be hidden on mobile
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I16a39b81ec969bc847b92708486b729baddc0c5e
It should not be visible:
- Update id (it now has img as sufix)
- Add to display none elements
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I112cc52423a8862f6a4fb4d9ccaaf79298193721
Some elements were being on purposed set to be hidden but the ids have
changed and now the sufix img was added and so the CSS were not taking
affect anymore:
https://archive.org/download/cool-bug-mwizard-base64images/cool-bug-mwizard-base64images.png
Add sufix, update rules
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I0adf33dc64db70138e3530441137bf74275424ce
This reverts commit 32f5c874e7.
The text alignment is causing some problems both on the sidebar and in
the mobile wizard:
- Sidebar arrows (from dropdown menus) position are affected due to this
- Mobilewizard: content is getting wrongly aligned to the right
- On top of that we should preffer start and end due to RTL instead of
right or left
https://archive.org/details/cool-txt-align-bug
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I02f22da0b14b02e7431ea26c16930554e3c13aa2
... and make Welcome dialog optional for COOL
config: add welome url parameter
Signed-off-by: Henry Castro <hcastro@collabora.com>
config: add feedback url parameter
Signed-off-by: Henry Castro <hcastro@collabora.com>
config: add infobar-url parameter
Signed-off-by: Henry Castro <hcastro@collabora.com>
welcome: fix unhandled exceptions
Signed-off-by: Henry Castro <hcastro@collabora.com>
welcome: preprocess welcome file
added welcome-message.html
Signed-off-by: Henry Castro <hcastro@collabora.com>
welcome: clean up code related to vex welcome
Signed-off-by: Henry Castro <hcastro@collabora.com>
--enable-welcome-message is not necessary, when we specify a welcome URL, then it is enabled, otherwise it's user configurable
Signed-off-by: Andras Timar <andras.timar@collabora.com>
remove the unused welcome config settings
Signed-off-by: Andras Timar <andras.timar@collabora.com>
remove unused define ENABLE_FEEDBACK
Signed-off-by: Andras Timar <andras.timar@collabora.com>
do not install/package fallback welcome dialog, when welcome feature is not configured
Signed-off-by: Andras Timar <andras.timar@collabora.com>
remove welcome-message.html
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I20aa6220362018b63aaebd114b2b661561823fbb
We can't test SSL when SSL is disabled.
Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: I231a3c7d32f848870e90594e2d1151d3a0911f9a
No need to specify if it's first or second button as there is always
only one primary button. On top of that this avoids maintenance work
whenever for some reason the button is not the first in line.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Idd3ef60023e88d1a9a8fd6f465dc4c63c068debd
now, it uses a css theme variable for the color
but it is a kind of light grayish and it is harder
to see in a crowded document.
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: Iec5a7efdb4cb385512226841b036eba3b3212427
==4544==ERROR: AddressSanitizer: odr-violation (0x000002c40140):
[1] size=104 'HostUtil::WopiHosts' ../wsd/HostUtil.cpp:12:34
[2] size=104 'HostUtil::WopiHosts' wsd/HostUtil.cpp:12:34
These globals were registered at these points:
[1]:
#0 0x71f618 in __asan_register_globals.part.13 /home/vmiklos/git/libreoffice/lode/packages/llvm-llvmorg-9.0.1.src/compiler-rt/lib/asan/asan_globals.cc:362
#1 0x7f00cb0f3d7b in asan.module_ctor (/home/vmiklos/git/libreoffice/online-san/test/../test/.libs/unit-base.so+0x10e0d7b)
[2]:
#0 0x71f618 in __asan_register_globals.part.13 /home/vmiklos/git/libreoffice/lode/packages/llvm-llvmorg-9.0.1.src/compiler-rt/lib/asan/asan_globals.cc:362
#1 0x120e2ae in asan.module_ctor (/home/vmiklos/git/libreoffice/online-san/coolwsd+0x120e2ae)
==4544==HINT: if you don't care about these errors you may set ASAN_OPTIONS=detect_odr_violation=0
SUMMARY: AddressSanitizer: odr-violation: global 'HostUtil::WopiHosts' at ../wsd/HostUtil.cpp:12:34
==4544==ABORTING
All of HostUtil was duplicated between the test shared objects and
coolwsd, so remove it from the test objects and rather exclude
RequestDetails::getDocKey() from the test objects instead, which was
linked in but was not used in practice.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: Ia2147c89cf4230df97a8f45ac7d509aa11cdca97
With the reorganization of Calc tabs:
584e139bbd both Define and Manage names
disappear form the notebookbar. Add it back following the same new
organization.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I06740e225090407117e8b5a6aff54b476368e358
- now widgets are accessible using tab key
- can close all dialogs with ESC key
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4dcafb90f61bd05a91048ec1631d6eb851986c20
Currently translated at 50.3% (230 of 457 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (438 of 438 strings)
Translated using Weblate (Russian)
Currently translated at 50.1% (229 of 457 strings)
Translated using Weblate (Russian)
Currently translated at 86.7% (380 of 438 strings)
Co-authored-by: Егор Ермаков <eg.ermakov2016@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/help/ru/
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/ru/
Translation: Collabora Online/Help
Translation: Collabora Online/UI
Currently translated at 99.7% (437 of 438 strings)
Co-authored-by: Elisa de Castro Guerra <elisa.dcg@collabora.com>
Translate-URL: https://hosted.weblate.org/projects/collabora-online/ui/fr/
Translation: Collabora Online/UI
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I404b68f82b4d192fb20ce77e3fbc9425703fb16e
When the Kit dies and there is no data saved to
disk to upload, there is nothing to do but unload
DocBroker and log the fact.
With unit-test that simulates the situation by
killing the Kit of a modified document.
Change-Id: I7dcc0583c053d7166935d15d045fcf6624e43b4e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
also move paste special popup code to the clipboard.js
so it is easiet to share code
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I86bb1696ff78e3cef5425478cc3fb56cf47916b8
Before we were showing edit button only if the snackbar was not present
in the DOM. The goal here was to avoid overlapping elements (bar + FAB).
However and since the infobar can be present in the DOM but set to
display none this would cause another problem: no edit button and no
infobar visible to the user.
Solution:
- Make use of the existent css class .hidden (which sets it to display
none) so we can then in the css side show the Edit FAB only after them
snacbar is dismissed.
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I31be2dfeb1bcb08b971074466a24db719320f8f4
fix typo on clearList loop that prevents skipping trackchange
comments from being deleted
Also I removed the line in WriterTileLayer.js containing
clearList because clearList is already called on importComments
function so it was unnecessary
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: Ic4086a80b126aec62e382078f53d68bc17da8a1c
so now real locked_host settings will be applied if the document accessed with alias
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: Ib76704a4bf2c3da5dc7b83bbad98fe40b5c03316
Follow the same order as anywhere else such as annotations, JSdialog or
even tunneled dialogs:
primary action aligned to the left
Also update cypress test: Do not target button position related classes
instead, rely solely on main classes
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iac209aa343f22ddfdbd5662eba43d7adaa3f0892
Since the hostname argument is passed
to both the base class of SslStreamSocket
and SSL_set_tlsext_host_name, and since
the base class's getter, also called
hostname(), is hidden by the argument,
we cannot move it.
An empty hostname can result in 403 Forbidden
from the server due to missing Server Name
Indication (SNI).
Change-Id: I27990f64f17ec3c81a4dd543a078807629cd0c20
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Fixes problem with:
- showing wrong slide number in statusbar
- inserting comment at correct page
in pdfs where we see slides in continuous mode.
Sending slide id from online to server is much easier
than calculating based on visible area on the server
where we have to put that data into TabControl widget
which is used in different places.
It updates visible slide on scroll and also when selected
from the previews bar.
Signed-off-by: Szymon Kłos <eszkadev@gmail.com>
Change-Id: I7f8a9458e415e17391a4a249e19fd97f8541debd
- Make sure the close button is always place at the last position so even
if integrator adds additional icons the close button should always
appear afterwards and make sure it does get shrunk
- Force closebuttonwrapper to be positioned at the end (far left side)
by grow #userListHeader (even if invisible)
- Avoid positioning closebutton image with background-position
- Simplify by just fixing the parent and centering the image
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I851744c75c132957b8754ce7a105e57625f986bc
Remove the now necessary max-width from tablets
- We now have those parent elements being set as flex box
and thus we have now no need to limit the max width of this container
- Plus by limiting the max-width we were hiding more of the tabs while
not gaining anything useful in return
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I1ef477902fd95a4751009f8bf08350b6ce88aa97
modify and reply causes relayouting due to expansion of the
commentsections but it is based on whether they are selected or not
currently. If they are already selected we dont relayout them again
and it causes overlapping. To avoid that we can simply unselect
comments just before reply or modify.
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: Ifc2e546504b36b46f98a9b22ce791b4279239457
commit eb387cc7b1
At least in current master it is possible to right click on the link and
select 'Edit hyperlink' context menu item and the edit dialog(JS)
appears. So it seems there is no need for this workaround edit button
inside the warning 'JS' dialog box anymore.
Additional reason is that when help button is clicked on any
dialog(tunnelled or not) it shows a warning 'link' dialog that it is
about to open a external url, but this dialog has an unneeded edit
button because of the original commit.
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Change-Id: I2d8434746c698deefe69b38bf9947202f4f95862
We need to use a lighter/ highlight color for hover so we then be able
to use darker backgrounds for disabled status and even pressed status
(active)
Also this automatically fixes the hover status for on/off switchers on
the toolbar (e.g.:sidebar trigger). Now they also react onmouseover
With this change
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I5efc41e3e7d13c10cf2d714acefee08f99e6af1a
This commit does not change functionality
Add generic 'button-secondary' and 'button-primary' to buttons
- so we don't need to hunt each button from annotations
(cancel, save, reply)
additional plus: targeting any css class that has button-primary allow
to target in the future cases like vex-dialog-button-primary
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ie70867e3248ff70afdbe154593e4d02ec24c46df
With bda34c9096 those btns are already
generated with the proper generic classes that hold those styles so,
no need to keep individually targeting them
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I87912913d3f7340b5ed4b06b8c658791eda56d4e
- Better to keep everything related to buttons in the btn.css file
- Also all margins are already being set in the btn.css file anyhow
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ic1d9f7e2b895604367571a93f593ef359659c57c
- add possibility to specify name alias for icons that are
generated via jsbuilder (sidebar, notebookbar). The goal here is to
avoid having multiple duplicated icons with different names:
Example: 2 identical SVG files were being used just because of their
name.
Context: When unifying icons between sidebar and toolbar PR #4426 ,
9576137df5 we end up with icons without
images on:
- Calc: Notebookbar
- Calc: Sidebar
This happens because even though we want to use the same icons the uno
commands are actually different from ones used in writer and elsewhere
(uno.AlignLeft <> uno.LeftPara)
Note: Since the sidebar uno.commands come from core we really need to
use icon url alias. If that was not the case we could have used here the
newest compatibilityAliases introduced in
7e6f3d5590
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I49647f8a32665d0363259151c09131d8c5063783
- Partly revert 7e705fcf09
- RGB expects rgb values. Hex annotation does not work: renders it
transparent
- Avoid low contrast between font and background (white with light bg)
- Use instead primary color
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Iad24d6bf30d2e62505254c70b174e9b9971cbeb1
Only one of them is needed, and only in COOLWSD.cpp itself.
Signed-off-by: Tor Lillqvist <tml@collabora.com>
Change-Id: I03864afdc13e778a2b8ce8205e135d679dddf13d
Apparently this breaks the build on at least
CentOS. Reverting for now.
This reverts commit 23f02b8929.
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Change-Id: Ie8f00bbc53a63098b473d625846c0b6fd4e074bd
prefer universal value as opposed to WebKit-based and blink only
value
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ie0bff5de254829db6bffcd7a928629a98b1889ac
We dont upload to storage on mobile we save as locally
and copy the temp file into original on uno save result callback
Doing that once during close is enough since there is no
turning back and it cannot be possibly modified after
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: I047626be862cdbcb86e083534555e45530f417a2
This is important because we in many places might want to still have the
respective element's space but without actually showing it.
Example: divider's space without that being represented by a bezel
- And add this new property to breaks surounding dropdown menus
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ib58cc9564144c4ad48fa240878a3654add5d4d03
we send the slideshow buttons reference to onClick function
in that item.disabled is false but later we reassign it from
w2ui get function and then it becomes disabled true on readonlymode
The logic is incorrect because onClick function does not respect
wheter the item is passed or not and tries to reassign it anyway.
Signed-off-by: Mert Tumer <mert.tumer@collabora.com>
Change-Id: I025e26c455a7673a002f894f49452b360550b178
There are no deprecated API currently in use,
but that is a moving target as we upgrade openssl.
This prevents any accidental use of deprecated API
and will reveal any deprecated API used in any
particular build.
Change-Id: I969f7f7c4efe163d4704dea9aab45c09550baa40
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
And improved socket logging in general while
making them more consistent.
Change-Id: I1ed7f2561476ca5370af91079d5d616804396f8e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
In some cases we add 'table-' prefix for toolboxes due to
some old requirements in the mobile-wizard. We need to find these
modified ids in a fallback on widget update.
In the future we should get rid of 'table-' prefix.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I4db881065b3deed427c12b417d0a30791a2184aa
- use .unoXXX class instead of id
- check only if height was changed on Optimal Row Height command
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ibfa93076237b15e16ae1851e3a66b4b239c42a2d
- add possibility to specify UNO command alias for newer
version of core so we will call all the versions for
compatibility of online with many versions of core
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I380fb1d2fd7f63bac297745401fa9d619f693348
This reverts commit 7821ce5368.
it is not needed, and blocks update of the image preview in Impress
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I1101c50a31f63e7a2acd91f22b0160e5fe204c3a
you can switch between 'first' and 'groups' mode
default mode is 'first' it allows only the first host when groups are not defined.
set mode to 'groups' and define group to allow multiple host and its aliases.
also added mode option in JSON format
to make the setup backwards compaitable , auto_host is by default false it won't
resolves aliases and dockey will only use uri's path . To use alias_groups you have
to explicitly set the auto_host allow attribute value to true
Signed-off-by: Rash419 <rashesh.padia@collabora.com>
Change-Id: I3af439edcbc546d9a660d678e52d813951dc237a
fixed regression caused by 1c86fd2ff8
regression: while we move textbox in impress previews would not go away
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I1b3cfefdd6abb7f81ff741eee4edab7e349c932d
Now with changes from 451d11ebac
change-id: Ia4ab1de407ca7658242282181eeb215fb6dc0d99 we can now safely
target all the vex buttons for mobile without exception
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I660463733fa9e6ce8feb46a08e9217f7c9f414da
Now with annotations btns being created with new ids it's crucial to
make sure we target them all
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I8c2dc9d0a088290fa0c2b9b3cbf83ee2f7d0dd76
This affects annotations (vex) and jsdialogs
- Set annotations btns' container to flex so we can reduce CSS rules
around specific buttons
----
Before we were relying solely on cancel button to change the layout,
by setting it to flex and let ok/submit/confirm btn untouched. This
was causing some inconsistencies plus it was forcing us to add CSS on a
case by case instead of fixing the root cause
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: Ia4ab1de407ca7658242282181eeb215fb6dc0d99
- Increase height of text area when in presence of dialog be that on
mobile or small screen size desktop or tablet for that matter
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I3791cb5ba3cc5ce10d250993b49ba058d0847dfc
These styles were initially intended to align to the user avatar but
they are not ideal anymore (specially when factoring in the compact
/collapsed mode on desktop for small screens)
- Remove these from desktop and make sure they are only avaialble on
mobile
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I1518373b1eda574e0aecbd5c76c5fdc1f5fc1c28
iteration on top of
commit hash: 31284e40f5
commit change-id: I03693f67c69d108ef3dcbf5cc9cd0127bd37b5a3
Signed-off-by: Pedro Pinto Silva <pedro.silva@collabora.com>
Change-Id: I2b52243a4367f43f7449c12854261ac6235493e6
==30332==ERROR: AddressSanitizer: odr-violation (0x0000020b9b20):
[1] size=1 'StorageBase::SSLAsScheme' ../wsd/Storage.cpp:67:19
[2] size=1 'StorageBase::SSLAsScheme' wsd/Storage.cpp:67:19
These globals were registered at these points:
[1]:
#0 0x71d0f8 in __asan_register_globals.part.13 lode/packages/llvm-llvmorg-9.0.1.src/compiler-rt/lib/asan/asan_globals.cc:362
#1 0x7f4c362ed33b in asan.module_ctor (online-san/test/../test/.libs/unit-base.so+0x10eb33b)
[2]:
#0 0x71d0f8 in __asan_register_globals.part.13 lode/packages/llvm-llvmorg-9.0.1.src/compiler-rt/lib/asan/asan_globals.cc:362
#1 0x11c709e in asan.module_ctor (online-san/coolwsd+0x11c709e)
==30332==HINT: if you don't care about these errors you may set ASAN_OPTIONS=detect_odr_violation=0
SUMMARY: AddressSanitizer: odr-violation: global 'StorageBase::SSLAsScheme' at ../wsd/Storage.cpp:67:19
==30332==ABORTING
Resolve the conflict by not providing these definitions when building
tests.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I6a8f74bd0b78a76f46b5401acaa816dd0b185aa9
While SSL is handshaking, there can be no general
application data communication. During that early
stage of connecting we have data to send (the
request, headers, etc.) and so we poll on POLLOUT.
Naturally, we also always want to poll on POLLIN,
because we can never know when there is data to
read (especially true for web-sockets).
The problem is when SSL will not send data just
yet because it is handshaking. It is typically
waiting for handshake negotiation data to read,
so when we POLLOUT, poll immediately returns, but
writing (via SSL_write) fails with WANTS_READ
error. This goes on in a busy-loop until the
negotiation data is available for read and the
handshake is completed. Very inefficient.
The solution is to poll on whatever SSL needs
during the handshake, exclusively. Once the
handshake is complete, we poll on whatever we
need. However, SSL can renegotiate at any time,
so we also merge with what it needs.
In addition, we avoid the unnecessary read when
poll doesn't give us POLLIN in revents, since the
read will more likely than not fail (except in
the rare case when data becomes available in the
interim). Notice that SSL_read will return
SSL_WANTS_READ when there is no data, which
is misleading (since SSL isn't in need of data to
read at all, nor are we, for that matter).
Best not to do noisy reads unnecessarily.
These changes are disabled by default and can
be enabled via the experimental_features option.
Change-Id: I6a7ed7d871ed257b30062cc720a8b8c7acbab3b7
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This adds a new config option to enable/disable
experimental features and behavior. The default
value can be controlled at build time by
--enable-experimental.
Change-Id: Iffcb4c71d9e0933a646251b63033b6dadcd3b809
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This is a follow up of feb672392 for the fix in 8af039251
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Change-Id: I6a1c754193cce4f7d11d17b9bbe1986a2b46ad86
When deciding whether the file on disk needs uploading
or not, we compare it with the last modified timestamp.
For this to work they need to be different.
When there is no file to upload (i.e. when there is
nothing new to save), the timestamp we get is
unix-time of 0. This is always different from 'now'.
So we incorrectly think there is data to be uploaded
when there isn't.
Better to initialize the last modified timestamp to
unix-time of 0, so in this case we correctly
conclude that there is nothing to upload.
Change-Id: I545e9021e9c76d009e08758342effaf3e9b964c7
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
When disconnecting from Kit we shouldn't bluntly stop
DocBroker, because even though we cannot save, we
can still upload the latest document version from
disk.
What makes this particularly problematic is that
we request to kill Kit when the last client is
disconnected.
This was caught through unit-tests, albeit it was
not very common or easy to reproduce.
This fixes cases where always_save_on_exit
doesn't save/upload.
Change-Id: Ib66281fc68d4c0264602852b0acdc453b6f79963
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
For some reason the disk-space check wasn't
done for WOPI storage. Here we add the check
and bubble the exception up to stop loading.
UnitStorage has been updated and re-enabled.
Change-Id: I15a093554b662d6c0828da7683ca0190a8225fc9
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Forkit takes significantly longer to start than
to fork. At the startup of WSD we do wait 4 times
as long for forkit than when forking kits.
Similarly, we should also wait that much when
forkit crashes and we recover.
This stabalizes the forkit crash tests, which
did fail rather frequently (in one example,
2 out of 10 runs had failed locally).
Change-Id: I990c8e595b64c34a8e202933be833c53d7ebfc01
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-03-16 08:31:54 -04:00
4024 changed files with 425424 additions and 254893 deletions
<!-- Note: 'default' attributes are used to document a setting's default value as well as to use as fallback. -->
<!-- Note: When adding a new entry, a default must be set in WSD in case the entry is missing upon deployment. -->
<accessibilitydesc="Accessibility settings">
<enabletype="bool"desc="Controls whether accessibility support should be enabled or not."default="false">false</enable>
</accessibility>
<allowed_languagesdesc="List of supported languages of Writing Aids (spell checker, grammar checker, thesaurus, hyphenation) on this instance. Allowing too many has negative effect on startup performance."default="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru">de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru</allowed_languages>
<sys_template_pathdesc="Path to a template tree with shared libraries etc to be used as source for chroot jails for child processes."type="path"relative="true"default="systemplate"></sys_template_path>
@ -17,7 +24,6 @@
<per_documentdesc="Document-specific settings, including LO Core settings.">
<max_concurrencydesc="The maximum number of threads to use while processing a document."type="uint"default="4">4</max_concurrency>
<batch_prioritydesc="A (lower) priority for use by batch eg. convert-to processes to avoid starving interactive ones"type="uint"default="5">5</batch_priority>
<document_signing_urldesc="The endpoint URL of signing server, if empty the document signing is disabled"type="string"default=""></document_signing_url>
<redlining_as_commentsdesc="If true show red-lines as comments"type="bool"default="false">false</redlining_as_comments>
<idle_timeout_secsdesc="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 -->
@ -128,12 +134,11 @@
<welcome>
<enabletype="bool"desc="Controls whether the welcome screen should be shown to the users on new install and updates."default="false">false</enable>
<enable_buttontype="bool"desc="Controls whether the welcome screen should have an explanatory button instead of an X button to close the dialog."default="false">false</enable_button>
<pathdesc="Path to 'welcome-$lang.html' files served on first start or when the version changes. When empty, defaults to the Release notes."type="path"relative="true"default="browser/welcome"></path>
</welcome>
<user_interface>
<modetype="string"desc="Controls the user interface style (classic|notebookbar)"default="classic">classic</mode>
<modetype="string"desc="Controls the user interface style. The 'default' means: Take the value from ui_defaults, or decide for one of compact or tabbed (default|compact|tabbed)"default="default">default</mode>
<use_integration_themedesc="Use theme from the integrator"type="bool"default="true">true</use_integration_theme>
</user_interface>
<storagedesc="Backend storage">
@ -167,8 +172,6 @@
</ssl>
</storage>
<tile_cache_persistentdesc="Should the tiles persist between two editing sessions of the given document?"type="bool"default="true">true</tile_cache_persistent>
<admin_consoledesc="Web admin console settings.">
<enabledesc="Enable the admin console functionality"type="bool"default="true">true</enable>
<enable_pamdesc="Enable admin user authentication with PAM"type="bool"default="false">false</enable_pam>
@ -179,4 +182,16 @@
<monitorsdesc="Addresses of servers we connect to on start for monitoring">
</monitors>
<fonts_missing>
<handlingdesc="How to handle fonts mising in a document: 'report', 'log', 'both', or 'ignore'"type="string"default="log">both</handling>
</fonts_missing>
<zoterodesc="Zotero plugin configuration. For more details about Zotero visit https://www.zotero.org/">
- ![Master: Pull request policy](https://img.shields.io/badge/Master-PRs%20can%20be%20merge%20without%20approval-42BC00?logoColor=42BC00&logo=git "Main release is still distant. Thanks for your support and contributions! :)") Try to get at least one +1 as a reaction, comment or approval from someone else before merging it
- ![Master: Pull request policy](https://img.shields.io/badge/Master-PRs%20can%20be%20merged%20without%20approval-42BC00?logoColor=42BC00&logo=git "Main release is still distant. Thanks for your support and contributions! :)") Try to get at least one +1 as a reaction, comment or approval from someone else before merging it
- ![Master: Pull request policy](https://img.shields.io/badge/Master-protected%2C%20PRs%20need%20approval-red?logoColor=lightred&logo=git "Collabora Team is preparing for the next release, therefore 'master' branch is protected now, PRs need 1 review before merging. Thanks for your support and contributions! :)") It's required to have approval from someone before your PR can be merged
And if you get stuck at any point, just drop by one of our [communication channels](https://collaboraonline.github.io/post/communicate/).
[![Build Status](https://cpci.cbg.collabora.co.uk:8080/view/Tinderbox/job/Tinderbox%20for%20online%20master/badge/icon?subject=master)](https://cpci.cbg.collabora.co.uk:8080/view/Tinderbox/job/Tinderbox%20for%20online%20master/) [![Build Status](https://cpci.cbg.collabora.co.uk:8080/job/Github%20for%20core%20side%20of%20online%20master/badge/icon?subject=GH+core "GitHub core side for online master")](https://cpci.cbg.collabora.co.uk:8080/job/Github%20for%20core%20side%20of%20online%20master/)
<palign="right"><ahref="#gitpod"><imgalt="Open in Gitpod"src="https://gitpod.io/button/open-in-gitpod.svg"></a></p>
# Collabora Online
[![Master: Pull request policy](https://img.shields.io/badge/Master-PRs%20can%20be%20merge%20without%20approval-42BC00?logoColor=42BC00&logo=git "Main release is still distant. Thanks for your support and contributions! :)")](https://github.com/CollaboraOnline/online/blob/master/CONTRIBUTING.md#contributing-to-source-code)
<!--
[![Master: Pull request policy](https://img.shields.io/badge/Master-protected%2C%20PRs%20need%20approval-red?logoColor=lightred&logo=git "Collabora Team is preparing for the next release, therefore 'master' branch is protected now, PRs need 1 review before merging. Thanks for your support and contributions! :)")](https://github.com/CollaboraOnline/online/blob/master/CONTRIBUTING.md#contributing-to-source-code)
[![Master: Pull request policy](https://img.shields.io/badge/Master-PRs%20can%20be%20merge%20without%20approval-42BC00?logoColor=42BC00&logo=git "Main release is still distant. Thanks for your support and contributions! :)")](https://github.com/CollaboraOnline/online/blob/master/CONTRIBUTING.md#contributing-to-source-code)
-->
[![Master: Pull request policy](https://img.shields.io/badge/Master-protected%2C%20PRs%20need%20approval-red?logoColor=lightred&logo=git "Collabora Team is preparing for the next release, therefore 'master' branch is protected now, PRs need 1 review before merging. Thanks for your support and contributions! :)")](https://github.com/CollaboraOnline/online/blob/master/CONTRIBUTING.md#contributing-to-source-code)
* View and edit text documents, spreadsheets, presentations & more
@ -29,15 +35,17 @@
## Website
For many more details, build instructions, downloads and more please visit https://collaboraonline.github.io/
For many more details, build instructions, downloads and more please visit https://collaboraonline.github.io/ and also you can check out the [SDK Documentation](https://sdk.collaboraonline.com/contents.html).
## Developer assistance
Please ask your questions on `irc.libera.chat` in our `#cool-dev` channel
Please ask your questions on any of the bridged Matrix/Telegram rooms
@ -58,26 +66,21 @@ This project has several components:
## Further recommended reading with build details
Please consult the README files in the component's directory for more details:
- wsd/README
- browser/README
- **[wsd/README](wsd)**
- **[browser/README](browser)**
## iOS and Android apps
See the corresponding READMEs:
* **ios/README**
* **android/README**
* **[ios/README](ios)**
* **[android/README](android)**
## GitPod
Head over to https://collaboraonline.github.io/post/build-code/ select gitpod from the dropdown and follow the steps.
Head over to https://collaboraonline.github.io/post/build-code/#build-code-on-gitpod and follow the steps.
Interesting things to keep in mind:
- Make sure your browser is not blocking windows/tabs from opening from the gitpod workspace URL (maybe add `*.gitpod.io` to your browser's whitelist)
- The GitPod tasks will run automatically and further instructions will be printed out right in the terminal
- VNC tab will open automatically if not just click in the left icon `Remote explorer` and click `6080`. You will see a tab completly black, that's normal.
- As mentioned in those instructions if you are not using the VS Code desktop and if you are only relying on your browser please:
- Do not try to click the URL from the make run out put instead copy that URL and execute `firefox [paste URL here]`
- Head over to the tab where the VNC is opened (black page), you will see Firefox opening there, maximize and have fun.
- You can also run cypress tests via GitPod but you will need to use Firefox, for that just prepend `CYPRESS_BROWSER="firefox"` to the desired command. Example: `CYPRESS_BROWSER="firefox" make check` for every test or `CYPRESS_BROWSER="firefox" make check-desktop spec=impress/scrolling_spec.js` for one specific test on desktop
## Integrating
To [integrate](https://sdk.collaboraonline.com/docs/why_integrate.html) Collabora Online into your own solution, you can see our [step-by-step tutorial](https://sdk.collaboraonline.com/docs/Step_by_step_tutorial.html), view the [available integrations](https://sdk.collaboraonline.com/docs/available_integrations.html), understand the [post message API](https://sdk.collaboraonline.com/docs/postmessage_api.html) used to customize and interact with Collabora Online, and a lot more.
Collabora Online binaries may be statically linked against POCO C++ Libraries.
The POCO C++ Libraries are licensed under the Boost Software License. A very liberal license that encourages both commercial and non-commercial use.
THE BOOST SOFTWARE LICENSE 1.0
Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following:
The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Collabora Online binaries may be statically linked against OpenSSL 3.0 Libraries.
For the OpenSSL 3.0 release, and later releases derived from that, the Apache License v2 applies.
Apache License
Version 2.0, January 2004
https://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
<stringname="owncloud_unauthorized">Kan ikke logge ind på cloud-serveren. Tjek din konfiguration.</string>
<stringname="owncloud_unspecified_error">"Uspecificeret fejl ved forbindelse til cloud-serveren. Tjek din konfiguration og/eller prøv senere."</string>
<stringname="owncloud_unspecified_error">Uspecificeret fejl ved forbindelse til cloud-serveren. Tjek din konfiguration og/eller prøv senere.</string>
<stringname="server_url_and_port">Cloudserverens URL og port.</string>
<stringname="app_version">Verzija: %1$s, ID gradnje: %2$s</string>
<stringname="app_description">$APP_NAME je moderan softverski paket otvorenog koda s modernim programima za obradu teksta, proračunskih tablica, prezentacija i još mnogo toga.</string>
<stringname="app_vendor">Proizvođač izdanja je $VENDOR.</string>
<stringname="no_items">Nema elemenata</string>
<stringname="no_items">Nema stavki</string>
<stringname="temp_file_saving_disabled">Datoteka je zaštićena, spremanje je deaktivirano.</string>
<stringname="file_exists_warning">Datoteka s tim imenom već postoji, biti će prepisana.</string>
<stringname="file_creation_failed">Neuspjelo stvaranje datoteke</string>
<stringname="storage_permission_required">Potrebna je dozvola za spremište</string>
<stringname="failed_to_load_file">Neuspjelo određivanje datoteke za učitavanje</string>
<stringname="owncloud_unspecified_error">Onbekende fout bij het verbinden met de cloud-server. Controleer uw configuratie en/of probeer het later.</string>
<stringname="owncloud_unauthorized">Kan geen verbinding maken met de cloud-server. Controleer uw configuratie.</string>
<stringname="owncloud_wrong_connection">Kan geen verbinding maken met de cloud-server. Controleer uw configuratie.</string>
<stringname="owncloud_unauthorized">Kan niet aanmelden op de cloud-server. Controleer uw configuratie.</string>
<stringname="owncloud_wrong_connection">Kan geen verbinding met de cloud-server maken. Controleer uw configuratie.</string>
<stringname="pref_show_debug_info_summary">Schakel foutopsporingsinformatie in documentviewer weergeven in</string>
@ -91,7 +91,7 @@
<stringname="file_exists_warning">Er bestaat al een bestand met deze naam en zal overschreven worden.</string>
<stringname="temp_file_saving_disabled">Dit bestand is alleen-lezen; opslaan is uitgeschakeld.</string>
<stringname="no_items">Geen items</string>
<stringname="no_recent_items">Open een bestand met het mappictogram op de werkbalk.</string>
<stringname="no_recent_items">Open een bestand met behulp van het mappictogram in de werkbalk.</string>
<stringname="app_vendor">Deze versie is geleverd door $VENDOR.</string>
<stringname="app_description">$APP_NAME is een moderne, gebruiksvriendelijke, open source productiviteitssuite voor tekstverwerking, werkbladen, presentaties en meer.</string>
<stringname="app_version">Versie: %1$s
@ -103,7 +103,7 @@
<stringname="pref_enable_chrome_debugger_info">Gebruik Chrome\'s hulpmiddel voor foutopsporing in dit document</string>
<stringname="remove_from_list">Van de lijst verwijderen</string>
<stringname="app_description">$APP_NAME é uma moderna suíte de produtividade para processamento de texto, folhas de cálculo e apresentações, de fácil utilização, e open source.</string>
<stringname="app_description">$APP_NAME é uma moderna, fácil de usar, suíte de produtividade de código aberto, para processamento de texto, planilhas, apresentações e muito mais.</string>
<stringname="app_vendor">Esta versão foi fornecida por $VENDOR.</string>
<stringname="no_recent_items">Abra um arquivo através do ícone existente na barra de ferramentas.</string>
<stringname="no_items">Nenhum item</string>
<stringname="temp_file_saving_disabled">Este documento é apenas de leitura, salvaguardar está desabilitado.</string>
<stringname="file_exists_warning">Um ficheiro com o mesmo nome já existe, e será substituído.</string>
<stringname="file_creation_failed">Falha na criação do documento</string>
<stringname="temp_file_saving_disabled">Este arquivo é apenas de leitura, salvamento está desabilitado.</string>
<stringname="file_exists_warning">Um arquivo com esse nome já existe e será sobrescrito.</string>
<stringname="file_creation_failed">Falha na criação do arquivo</string>
<stringname="storage_permission_required">Permissão de armazenamento é requirida</string>
<stringname="failed_to_load_file">Falha no carregamento do documento</string>
<stringname="failed_to_load_file">Falha para determinar o arquivo a ser carregado</string>
<stringname="list_view">Lista</string>
<stringname="grid_view">Grelha</string>
<stringname="pref_category_explorer">Configurações do gestor de arquivos</string>
<stringname="grid_view">Grade</string>
<stringname="pref_category_explorer">Configurações do Gerenciador de Arquivos</string>
<stringname="usb_connected_configure">USB conetado, configure o seu dispositivo.</string>
<stringname="usb_connected_configure">USB conectado, configure o seu dispositivo.</string>
<stringname="owncloud_wrong_connection">Não foi possível conectar com o servidor na nuvem. Verifique as suas configurações.</string>
<stringname="owncloud_unauthorized">Não foi possível iniciar a sessão no servidor. Verifique as suas configurações.</string>
<stringname="owncloud_unspecified_error">Erro não especificado ao conetar com o servidor na nuvem. Verifique as suas configurações ou tente mais tarde.</string>
<stringname="owncloud_unspecified_error">Erro não especificado ao conectar com o servidor na nuvem. Verifique as suas configurações e/ou tente mais tarde.</string>
<stringname="ext_document_provider_error">Arquivo raiz inválido. Verifique a configuração do seu cartão SD.</string>
<stringname="otg_missing_error">Arquivo raiz inválido. Verifique seu dispositivo OTG e/ou configuração.</string>
<!-- Edit action names -->
<!-- Feedback messages -->
<!-- Document provider settings -->
<stringname="storage_provider_settings">Configurações de servidor</string>
<stringname="storage_provider_settings">Configurações do provedor de armazenamento</string>
<stringname="owncloud_settings">Configurações do servidor na nuvem</string>
<stringname="physical_storage_settings">Configurações de armazenamento físico</string>
<stringname="pref_enable_chrome_debugger_info">Aktivizojeni, që të përdoret mjeti i diagnostikimit Chrome te dokumenti</string>
<stringname="new_spreadsheet">Fletëllogaritje e Re</string>
<stringname="owncloud_unauthorized">S’bëhet dot hyrje në llogari te shërbyesi re.</string>
<stringname="owncloud_unspecified_error">Gabim i papërcaktuar në lidhjen te shërbyesi re. Kontrolloni formësimin tuaj dhe/ose riprovoni më vonë.</string>
<stringname="app_description">$APP_NAME është një suitë moderne zyrash, e lehtë për t’u përdorur, me burim të hapët, për përpunim tekstesh, fletëllogaritje, paraqitje, etj.</string>
<stringname="app_vendor">Kjo hedhje në qarkullim qe sjellë nga $VENDOR.</string>
<stringname="no_recent_items">Ju lutemi, hapni një kartelë duke përdorur ikonën dosje te paneli.</string>
<stringname="no_items">S’ka objekte</string>
<stringname="file_exists_warning">Ka tashmë një kartelë me këtë emër dhe do të mbishkruhet.</string>
<stringname="file_creation_failed">Krijimi i kartelës dështoi</string>
<stringname="file_exists_warning">Файл з такою назвою вже існує і буде перезаписаний.</string>
<stringname="temp_file_saving_disabled">Цей файл лише для читання, збереження неможливе.</string>
<stringname="no_items">Немає елементів</string>
<stringname="no_recent_items">Відкрийте файл за допомогою піктограми папки на панелі інструментів.</string>
<stringname="no_recent_items">Відкрийте файл за допомогою піктограми теки на панелі інструментів.</string>
<stringname="app_vendor">Цей випуск надано $VENDOR.</string>
<stringname="app_description">$APP_NAME це сучасний, простий у використанні набір програм з відкритим кодом для обробки текстів, електронних таблиць, презентацій тощо.</string>
<stringname="app_description">$APP_NAME is a modern, easy-to-use, open source productivity suite for word processing, spreadsheets, presentations and more.</string>
<stringname="app_vendor">This release was supplied by $VENDOR.</string>
<stringname="no_recent_items">Please open a file using the folder icon in the toolbar.</string>
<stringname="no_items">No items</string>
<stringname="temp_file_saving_disabled">This file is read-only, saving is disabled.</string>
<stringname="temp_file_saving_disabled">Darllen yn unig yw\'r ffeil hon, mae cadw wedi ei analluogi.</string>
<stringname="saving">Yn cadw...</string>
<stringname="preparing_for_the_first_start_after_an_update">Paratoi am y cychwyn cyntaf ar ôl diweddariad.</string>
@ -14,4 +14,13 @@
<stringname="exiting">Gorffen...</string>
<stringname="rate_our_app_text">Os ydych yn ei hoffi, rhowch 5 seren i ni ar Google Play. Mae eich adolygiadau da yn ein hysbrydoli.</string>
<stringname="file_chromeos_read_only">Nid oes modd cadw\'r ffeil yn y lleoliad yma. Bydd angen ei symud i\'r fan Chwarae ffeiliau ar gyfer mynediad darllen/ysgrifennu llawn.</string>
<stringname="convert_odf_message">Gall y ddogfen hon gynnwys fformatio neu gynnwys nad oes modd ei chadw yn y fformat ffeil \"Testun\" a ddewiswyd ar hyn o bryd .</string>
<stringname="storage_permission_required">Lagringstilladelse er nødvendig.</string>
<stringname="file_chromeos_read_only">Denne fil kan ikke gemmes her og er skrivebeskyttet. Flyt den til Play-filerne og få fulde læse-/skrive-adgang.</string>
<stringname="temp_file_saving_disabled">Denne fil er skrivebeskyttet. Lagring er deaktiveret.</string>
<stringname="convert_odf_message">Dette dokument kan indeholde formatering eller indhold, som ikke kan gemmes i det valgte filformat \"Text\".</string>
<stringname="cant_open_the_document">Dokumentet kunne ikke åbnes</string>
<stringname="view_only">Kun visning</string>
<stringname="ask_for_copy">Dette dokument er skrivebeskyttet. Ønsker du at lave en kopi til redigering\?</string>
<stringname="file_chromeos_read_only">Non é posíbel gardar este ficheiro neste sitio, polo que se abre só para lectura. Móvao para os ficheiros de Play para un acceso de lectura e escritura completo.</string>
<stringname="restarting">Reiniciando...</string>
<stringname="cant_open_the_document">Non se puido abrilo documento</string>
<stringname="view_only">Só ver</string>
<stringname="ask_for_copy">Este documento é só de lectura. Queres facer unha copia para editala\?</string>
<stringname="edit_copy">Editar unha copia</string>
<stringname="use_text">Empregar o formato Texto</string>
<stringname="use_odf">Empregar o formato ODF</string>
<stringname="ask_for_convert_odf">Confirme o formato do ficheiro</string>
<stringname="convert_odf_message">Este documento pode conter formato ou contido que non poidan ser gardados no formato de ficheiro seleccionado agora, «Texto».</string>
<stringname="rate_our_app_text">Ako ti se sviđa, daj nam 5 zvjezdica na Google Play stranici. Tvoje dobre kritike su nam najbolja motivacija.</string>
@ -19,8 +19,8 @@
<stringname="rate_now">Ocijeni sada</string>
<stringname="file_chromeos_read_only">Datoteku nije moguće spremiti na ovom mjestu, otvorit će se u zaštićenom stanju. Premjesti je u datoteke za reprodukciju za potpuni pristup čitanju/pisanju.</string>
<stringname="cant_open_the_document">Dokument se ne može otvoriti</string>
<stringname="convert_odf_message">Ovaj dokument može sadržavati formatiranje ili sadržaj koji se ne može spremiti u trenutačno odabranom tekstualnom formatu datoteke.</string>
<stringname="convert_odf_message">Ovaj dokument može sadržavati formatiranje ili sadržaj koji se ne može spremiti u trenutačno odabran datotečni format „Tekst”.</string>
<stringname="edit_copy">Modifica una copia</string>
<stringname="view_only">Visualizza solo</string>
<stringname="restarting">Riavvio…</string>
<stringname="use_text">Utilizza il formato di testo</string>
<stringname="use_odf">Utilizza il formato ODF</string>
<stringname="ask_for_convert_odf">Conferma il formato del file</string>
<stringname="convert_odf_message">Questo documento può contenere formattazione o contenuto che non può essere salvato nel formato di file attualmente selezionato \"testo\".</string>
<stringname="cant_open_the_document">Impossibile aprire il documento</string>
<stringname="ask_for_copy">ഈ പ്രമാണം വായിക്കാൻ മാത്രമുള്ളതാണ്. തിരുത്താൻ നിങ്ങൾക്ക് ഒരു പകർപ്പ് നിർമ്മിക്കണോ\?</string>
<stringname="rate_our_app_text">നിങ്ങൾക്കിത് ഇഷ്ടമാണെങ്കിൽ, ഗൂഗിൾ പ്ലേസ്റ്റോറിൽ ഞങ്ങൾക്ക് 5 നക്ഷത്രങ്ങൾ നൽകുക. നിങ്ങളുടെ നല്ല അവലോകനങ്ങളാണ് ഞങ്ങളുടെ മികച്ച പ്രചോദനം.</string>
<stringname="cant_open_the_document">Kunne ikke åpne dokumentet</string>
<stringname="convert_odf_message">Dette dokumentet kan inneholde formatering eller innhold som ikke kan lagres i det for øyeblikket valgte filformatet \"Tekst\".</string>
<stringname="failed_to_load_file">लोड गर्न फाइल निर्धारण गर्न असफल</string>
<stringname="temp_file_saving_disabled">यो फाइल पढ्ने मात्र हो, बचत अक्षम छ।</string>
<stringname="storage_permission_required">भण्डारण अनुमति आवश्यक छ</string>
<stringname="later">पछि</string>
<stringname="rate_our_app_text">यदि तपाईंलाई यो मनपर्छ भने, कृपया हामीलाई गुगल प्ले मा ५ ताराहरू दिनुहोस्। तपाईंको राम्रो समीक्षा हाम्रो सबै भन्दा राम्रो प्रेरणा हो।</string>
<stringname="loading">लोडहुँदै छ...</string>
<stringname="exiting">बाहिर निस्कँदै...</string>
<stringname="restarting">पुन: सुरु गर्दै...</string>
<stringname="convert_odf_message">यस कागजातमा ढाँचा वा सामग्री हुन सक्छ जुन हाल चयन गरिएको फाइल ढाँचा \"पाठ\" मा बचत गर्न सकिँदैन।</string>
<stringname="file_chromeos_read_only">यो फाइल यस स्थानमा बचत गर्न सकिँदैन, यसलाई पढ्न-मात्र खोल्दै। पूर्ण पढ्न/लेखन पहुँचको लागि यसलाई प्ले फाइलहरूमा सार्नुहोस्।</string>
<stringname="failed_to_insert_image">छवि सम्मिलित गर्न असफल भयो</string>
<stringname="file_chromeos_read_only">Het bestand kan op deze locatie niet worden bewaard; het wordt alleen-lezen geopend. Verplaats het naar Play-bestanden voor volledige lees- en schrijftoegang.</string>
<stringname="temp_file_saving_disabled">Este documento é apenas de leitura, salvaguardar está desabilitado.</string>
<stringname="temp_file_saving_disabled">Este arquivo é apenas de leitura, salvamento está desabilitado.</string>
<stringname="storage_permission_required">Permissão de armazenamento é requirida</string>
<stringname="failed_to_load_file">Falha no carregamento do documento</string>
<stringname="failed_to_insert_image">Falha ao inserir imagem</string>
<stringname="cannot_open_file_chooser">Não foi possível abrir o gestor de arquivos</string>
<stringname="failed_to_load_file">Falha para determinar o arquivo a ser carregado</string>
<stringname="failed_to_insert_image">Falha para inserir imagem</string>
<stringname="cannot_open_file_chooser">Não foi possível abrir o gerenciador de arquivos</string>
<!-- Loading SlideShow Dialog Strings -->
<stringname="loading">Carregando...</string>
<stringname="saving">Salvando...</string>
<stringname="preparing_for_the_first_start_after_an_update">Preparando para iniciar após uma atualização.</string>
<stringname="rate_now">Avaliar agora</string>
<stringname="rate_our_app_text">Se gostou dele, marque 5 estrelas no Google Play. Sua avaliação positiva é nossa melhor motivação.</string>
<stringname="rate_our_app_text">Se você gostar, por favor, dê-nos 5 estrelas no Google Play. Suas boas críticas são nossa melhor motivação.</string>
<stringname="rate_our_app_title">Obrigado por usar %1$s!</string>
<stringname="later">Mais tarde</string>
<stringname="exiting">Saindo...</string>
<stringname="file_chromeos_read_only">Este arquivo não pode ser salvo neste local, abrindo-o em só leitura. Mova-o para os arquivos de Play para poder ler e gravar o arquivo.</string>
<stringname="file_chromeos_read_only">Este arquivo não pode ser salvo nesse local, abrindo-o como somente leitura. Mova-o para os arquivos Play para ter acesso total de leitura/gravação.</string>
<stringname="ask_for_copy">Este documento é somente para leitura. Você quer fazer uma cópia para editá-lo\?</string>
<stringname="cant_open_the_document">Não foi possível abrir o documento</string>
<stringname="use_odf">Usar Formato ODF</string>
<stringname="ask_for_convert_odf">Confirmar formato de arquivo</string>
<stringname="use_text">Usar Formato de Texto</string>
<stringname="convert_odf_message">Este documento pode conter formatação ou conteúdo que não pode ser salvo no formato de arquivo \"Texto\" atualmente selecionado.</string>
<stringname="preparing_for_the_first_start_after_an_update">Estamos a preparar o arranque após a atualização.</string>
<stringname="saving">A guardar...</string>
<stringname="exiting">A sair...</string>
<stringname="rate_our_app_text">Se gostou da aplicação, assinale 5 estrelas na Google Play. As avaliações positivas proporcionam motivação.</string>
<stringname="rate_our_app_title">Obrigado por utilizar %1$s!</string>
<stringname="rate_our_app_text">Se gostou da aplicação, dê-nos 5 estrelas no Google Play. As avaliações positivas são a nossa maior motivação.</string>
<stringname="rate_our_app_title">Obrigado por utilizar o %1$s!</string>
<stringname="later">Mais tarde</string>
<stringname="rate_now">Avaliar agora</string>
<stringname="file_chromeos_read_only">O ficheiro não pode ser guardado neste local. Mova-o para os ficheiros \'Play\' de modo a que o possa ler/escrever.</string>
<stringname="temp_file_saving_disabled">Kjo kartelë është vetëm-lexim, ruajtja është e çaktivizuar.</string>
<stringname="file_chromeos_read_only">Kjo kartelë s’mund të ruhet në këtë vend, po hapet si vetëm-lexim. Për përdorim të plotë lexim/shkrim, kalojeni te kartelat Play.</string>
<stringname="ask_for_convert_odf">Ripohoni Format Kartele</string>
<stringname="convert_odf_message">Ky dokument mund të përmbajë formatim, ose lëndë që s’mund të ruhet nën formatin e përzgjedhur aktualisht “Tekst”.</string>