Previously, when entering or exiting mobile wizard sublevels you would
start scrolled down to the place you were before. For example, if you
scrolled down a few items on the main context menu of an image in order
to reach "arrange", you would always end up right at the bottom of the
"arrange" menu.
By always scrolling up to the top, we can prevent you from ever having
content hidden above you.
Signed-off-by: Skyler <skyler.grey@collabora.com>
Change-Id: I02365ecef859fb6f199d14a12a49937d5a30b8e7
Previously we were mixing up lat/lng, which made calc jump to unexpected
places when the person we're following's cursor is offscreen.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I4db4c93118fbc3ffd04c7152652ccd2b26209b5d
On small window sizes, a context menu may be forced to open in such a
way that it goes over the same region as the notebookbar or spreadsheet
tabs.
In that case, the context menu should be above the other element, or
some of the context menu options could be unreachable.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Id269e3fb9bc2251677a0792d83fc51bd56b9cb21
The net.service_root setting means we can't require that this is at the
start, but at least we should not accept any random URLs there.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I2f492564066206d17d66d966e77e6abaf8104d1a
Seeing that e.g. StorageBase::getHttpSession() does the same.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I3c453713af9b454a00719ce31ebfc4e09a3f7699
This is meant to help when the HTTP response arrives slowly and other
users want to interact with the document in the meantime.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I4f9c0a1493e7b3582691bbdca2889e19422b7458
This allows dispatching the paste or paste special UNO commands on the
server, after the clipboard download finished. In turn that allows
changing the clipboard download to be async in a next commit.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I2120ed0cf4ae506fb5f43adb4319b4c76bca9e18
Copying the full clipboard (including ODF) from a remote server into the
JS client failed with:
Refused to connect to '...' because it violates the following Content Security Policy directive: "connect-src ..."
If this happens, still send the original URL to the server, so it can
download the full clipboard, which gives better result for pasting,
compared to going via HTML only.
Not done in this commit: 1) the JS still tries to get the clipboard
itself, we download on the server only on failure and 2) the server does
a blocking HTTP download, which may not be wanted.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I9ed8c8050f9dbe71dc8fcd36c9d8fa6e8bba44f6
problem:
when an auto added comment was cancelled it displayed comment conflict dialog
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I2dcfd4d28015b41d9d88a0822506d918851223c3
problem:
if comment is removed by another user while its being edited,
that can not be overwritten like in the case of modification
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I4106f8d735207179a8938448982afbfcd4723929
inform user before updating comment list if user is editing comment
We also take care of importing latest update of comment in onACKComment,
because when we show dialog comments are always autosaved. So any subsequesnt
operations (i.e: save or cancle etc) will always trigger onACKComment.
problem:
if user was editing any comment and entire comment list was reimported
(ie: if another user enables show tracked changes) then comments will
not load correctly and will be invisible until doc is reloaded.
Signed-off-by: Pranam Lashkari <lpranam@collabora.com>
Change-Id: I55274633fac0da49989141873f87f29936d1515f
I see this on a local nextcloud where the audit dialog only has one entry
which is "ok".
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I55f12125cbc0ca4c88c9220ed114d455e84639e0
I figured out a way to stop compatibility breakages being so annoying
with the prefs refactor without needing to keep a prefs dictionary
around forever. If, on starting the application, we set new preference
names to old preference values we can choose when to break
compatibility.
This will allow us to do so later on, i.e. a significant time after the
rename, when many users will have had their preferences migrated and the
version with the old preference names is no longer supported.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I5f4101fb95b5f3b2caaf9ebaf353eb591024dd97
Previously we converted some ui_defaults values to booleans.
Unfortunately, when we save similar preferences to LocalStorage, we can
only save them as strings. To make sure code doesn't get booleans when
it's expecting everything to be a string, let's only send strings back
in our ui_defaults json
A nice followup to this might be to continue standardizing ui_defaults
transformation code on the server side so that its use is minimal (e.g.
uiMode, uiTheme variables), however an overhaul of server-side
ui_defaults was deemed to risky for now
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I35ce175bf38da40361efd6f246264d0733e975e9
savedUIState isn't a normal UI_default, so it doesn't show up in the
ui_defaults list, and we can't fetch it with our prefs helper. Instead,
we should use the property on window
As a followup, it may be nice to make savedUIState be treated like a
normal ui_default, but I think that an overhaul of server-side
ui_default stuff is too risky for now
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ia66570c4694608a5caf7feba60208f34ca3c8ad3
In If4261a3e32375f6127241b846b97a3b4ac29eb0b, I introduced isRTL, which
can be set at construction of a ScrollSection. Unfortunately, some
places in ScrollSection still used isCalcRTL which could theorectically
be out-of-sync with isRTL, causing inconsistency in different parts of
ScrollSection code. This commit standardizes on only using isRTL.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ieaaa373c4db6d48e57e9cfe730d1b4bdffa20a8a
Refs: If4261a3e32375f6127241b846b97a3b4ac29eb0b
This is a fix for a regression which I introduced in
If4261a3e32375f6127241b846b97a3b4ac29eb0b.
Before this fix we were flipping the direction of scrolling on RTL mode
twice, once in onMouseMove and once in scrollHorizontalWithOffset. This
had the effect of cancelling to not flip the scroll at all. Oops.
The scrollHorizontalWithOffset isRTL distinction is still important to
keep for panning, so I'll remove the other one.
Refs: If4261a3e32375f6127241b846b97a3b4ac29eb0b
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ie8aa49196ebf2bb04ccbba46e7c0668a9860191b
Mobile (not tablet) mode has a different sort of scrollbar to desktop
mode. Like the desktop scrollbar, it should render on the other side if
we are in RTL mode.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I2bcedbe79e572cc59a60648262ff77a48673e555
Fix for using uninitialized app.map, when calling cool.html
without parameters:
Uncaught TypeError: Cannot read properties of null (reading 'fire')
at JSDialogMessageRouter.processMessage (Util.MessageRouter.ts:95:12)
at NewClass._onJSDialog (Socket.js:1540:26)
at NewClass._onMessage (Socket.js:1292:9)
at NewClass.showModal (Control.UIManager.js:1139:14)
at NewClass.showInfoModal (Control.UIManager.js:1250:8)
at main.js:79:16
at main.js:137:2
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I9307e1117e63f9386374d403d3a24e459e0a0b9a
Have two COOL servers, copy on one instance, paste an on other instance,
nothing happens on Ctrl-V.
It appears the JS code in Clipboard.js
_dataTransferDownloadAndPasteAsync() gets the correct HTML, but when it
tries to contact the "copy" server for the underlying full clipboard,
some security policy prevents the JS code from doing that. Which means
1) perhaps we should do that HTTP fetch on the server, not in JS and 2)
the fallback code should at least work via normal HTML.
Fix 2) by extending ChildSession::setClipboard() to recognize if the
data has the typical HTML header, and only start the usual parsing in
case the data we got is not bare HTML.
The 1) still needs fixing.
Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I55a102c2a39d21ac898f82041760a220e46784cb
This is a fix for a regression from
I4cc9cc885aa8cd0b40646629cd73bef236963a94
Compact/tabbed mode was saved on a per-app basis, but read on a global
basis. This meant that the read preference was never changed, causing it
to be impossible to switch out of compact mode once you had entered it.
The fix is to change back to the previous behavior of saving and reading
on a global basis
Refs: CollaboraOnline/Online#9181
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Ie9d72d6b7e10e209f10acf662535c866e06a98de
- Added option to print slides with inserted notes in it.
- It is consistent in both view -> Tabbed and Compact view
Signed-off-by: Darshan-upadhyay1110 <darshan.upadhyay@collabora.com>
Change-Id: If47a2384cda633eab4a754c07e690f0a9b0eb4a0
This will allow to avoid parallel access from many
sources. If one instance is used by different integrations
- we will warn only affected users.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ic397566c8e8e699dbfe5fd60b305040f735b44bc
Always show entries for things we check with status: red/green circle.
Initialize values on server start. If any user will not have is_audit
then we will mark that and later admin will see warning.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I0eb434b4d1ed9e4ec4eb9c463d0aa4516e0926d5
and get real state of missing is_admin property
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I988ac357d2eca27e0bdf55d144f33caf780be5f4
we use { code: string, status: string } entries to describe a
problem
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I21dacc0fa7b2c48f08ea2923e73da58fe33f976e
This is dialog shown only for the admin users, or if is_admin
property is missing in the userPrivateInfo then - all users.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ife8355816b1afe6765ef5edc6fe2d3db5e043532