Age | Commit message (Collapse) | Author |
|
Signed-off-by: Ivan Sein <ivan@nextcloud.com>
|
|
Add support for sharing fullscreen on Firefox.
|
|
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
|
nextcloud/fix-room-polling-not-stopped-when-leaving-the-current-room
Fix room polling not stopped when leaving the current room
|
|
Signed-off-by: Joachim Bauch <bauch@struktur.de>
|
|
When setting a room in the internal signaling a poller is started that
synchronizes the room data periodically; that poller should be stopped
when the room is left.
Note, however, that the poller should not be stopped when leaving the
current room if it was initialized for a room collection instead.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
Rename "commentsTabView" to "chatView"
|
|
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
Test against 15 for now
|
|
The CSS rules specific to the autocomplete list for mentions in the chat
view were applied to any other autocomplete list. In the main Talk UI
this is not a problem, as that is the only autocomplete list, but it
could be when using the Talk chat view in other components, like the
Files app.
The autocomplete list is created as a child of the body element itself,
so to limit the CSS rules only to the chat view it is not possible to
just prepend "#chatView" to the rules. Instead, now each item has a CSS
class (hopefully :-) ) unique to the chat view.
Unfortunately, it does not seem to be possible to ensure that the rules
defined in "autocomplete.scss" will not collide/override rules defined
in other apps, as customizing the CSS classes in ".atwho-view" so the
rules are applied only when it belongs to the chat view does not seem to
be possible (except, maybe, with some hacks).
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
"CommentsTabView" is a legacy name from the original import of the code
from the Comments app; besides being a better fit, "ChatView" also
ensures that the CSS rules will not conflict with those from the
Comments app when the Talk UI is used in the Files app.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
nextcloud/bugfix/noid/fix-alignment-of-avatars-in-mention-box-2
Fix avatar position in mention box.
|
|
nextcloud/fix-appearance-of-message-list-in-public-share-authentication-page
Fix appearance of message list in public share authentication page
|
|
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
|
Extract view for call button
|
|
In Nextcloud 15 the default Content Security Policy disallows unsafe
eval expressions, so Handlebars templates can no longer be compiled at
runtime.
For the time being that default Content Security Policy was lifted for
Talk so "Handlebars.compile" could still be used. However, this only
applies to Talk itself; when using Talk components in other apps they
must abide to the Content Security Policy of those apps. As CallButton
is going to be used in the Files app it has been moved to precompiled
Handlebars templates (which are still compatible with the regular Talk
UI).
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
Signed-off-by: Ivan Sein <ivan@nextcloud.com>
|
|
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
nextcloud/move-chatview-and-richobjectstringparser-to-precompiled-handlebars-templates
Move ChatView and RichObjectStringParser to precompiled Handlebars templates
|
|
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
|
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
|
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
|
In Nextcloud 15 the default Content Security Policy disallows unsafe
eval expressions, so Handlebars templates can no longer be compiled at
runtime.
For the time being that default Content Security Policy was lifted for
Talk so "Handlebars.compile" could still be used. However, this only
applies to Talk itself; when using Talk components in other apps they
must abide to the Content Security Policy of those apps. As the
RichObjectStringParser is going to be used in the Files app it has been
moved to precompiled Handlebars templates (which are still compatible
with the regular Talk UI).
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
Although the RichObjectStringParser is not a view as such its
functionality is closedly tied to views, so the views folder is a better
place to live in.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
In Nextcloud 15 the default Content Security Policy disallows unsafe
eval expressions, so Handlebars templates can no longer be compiled at
runtime.
For the time being that default Content Security Policy was lifted for
Talk so "Handlebars.compile" could still be used. However, this only
applies to Talk itself; when using Talk components in other apps they
must abide to the Content Security Policy of those apps. As ChatView is
going to be used in the Files app it has been moved to precompiled
Handlebars templates (which are still compatible with the regular Talk
UI).
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
|
|
"guest.scss" in server sets the "width" and "margin-top" properties of
".wrapper" elements to position the main content of the public share
authentication page. However, as the selector used in the rule is too
broad it is also applied to the internal wrapper of the virtual list, so
the properties need to be reset in that case.
Besides that, the padding of the message list is ignored when using the
virtual list, so that padding needs to be applied through the "left" and
"right" properties of the internal wrapper of the virtual list.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
|
|
|
|
nextcloud/show-again-participants-without-streams-in-a-call
Show again participants without streams in a call
|
|
|
|
Fix missing rightside bar menu handle
|
|
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
|
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
|
nextcloud/add-drone-step-to-check-handlebars-templates
Add Drone step to check Handlebars templates
|
|
Now if the source templates were modified but their compiled versions
were not updated the Drone job will fail.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
Dependencies declared in "package.json" are installed locally, so the
call to the handlebars script must be updated accordingly.
To ensure that Handlebars is installed before using it the Make step to
compile the templates now depends on the step to setup the development
environment.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
nextcloud/improve-performance-of-the-list-of-chat-messages
Improve performance of the list of chat messages
|
|
nextcloud/fix-getting-current-tab-id-when-there-are-no-tabs
Fix getting current tab ID when there are no tabs
|
|
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
As the virtual list removes its child elements that are no longer
visible the index of the messages in the acceptance test is no longer an
absolute index for the whole list, but an index only for the currently
visible messages. However, as all the messages sent in each test fit in
the available space no message is hidden and the previous indexes are
still valid.
The only change needed is in the locator for chat messages; as they are
declared as direct children of their parent now they must be set as
descendants of the wrapper instead of as descendants of the message list
itself.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
Firefox automatically includes scrollable elements in the sequential
keyboard navigation, but it needs to be explicitly done for Chromium.
Moreover, setting "tabindex" is also needed in Chromium to be able to
scroll by keeping a key pressed after focusing on the scrollable element
by clicking on one of its children; in Firefox the event keeps being
processed and the scrolling goes on until the key is released, but in
Chromium, when "tabindex" is not set, the scrolling stops as soon as the
child element is removed (which in the case of the virtual list happens
when the element goes out of view).
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
The virtual list requires that its internal wrappers use an absolute
position. Due to that absolute position the padding of the container
does not affect the wrappers, so the desired padding must be applied
through its left and right position.
As the virtual list keeps only a subset of its elements in the DOM the
":first-child" pseudo-selector no longer refers to the actual first
child element, but to the first one currently in the DOM; it would be
necessary to apply the CSS rules using a specific CSS class set only in
the desired element. However, as the first comment always includes the
date separator, which already has a top margin, the top padding is not
really needed in the first comment, so it was simply removed.
Moving the message list between the main view and the sidebar changes
its size, and thus it is necessary to reload the virtual list; when the
virtual list is reloaded it is ensured that the last visible element
will still be visible after the reload, so the chat view no longer needs
to explicitly handle that.
In a similar way, the message list also needs to be reloaded when the
window is resized, or when the chat view is in the main view and the
sidebar is opened or closed, as those actions change the size of the
main view.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
When the size of the container changes the position and size of all the
elements in the list could change. The virtual list relies on the cached
values for those properties, so they must be cached again when they
change.
The values need to be cached from elements in the document, but it is
not possible to add all the elements at once, even if temporary, to
cache their values. Thus the reload is an incremental process that
starts with the visible elements and progressively updates the rest of
elements; during that process the list can be scrolled only to those
elements already loaded, as those are the only ones with valid cached
values.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|
|
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
|