Commit Graph

497 Commits

Author SHA1 Message Date
JC Brand
99915a26f4 Use vcard from the collection for rendering messages 2018-05-03 20:05:45 +02:00
JC Brand
adf34c845c Render chatbox avatar via the vcards collection 2018-05-03 19:01:57 +02:00
JC Brand
3fe2ff234e Fixes #1088
Entity items weren't being fetched from cache.

Apparently this bug only surfaced because with Ejabberd the upload
service is nested one level deeper than with Prosody.
2018-05-03 15:48:32 +02:00
JC Brand
7eb6b13f10 Don't mark /me messages are followup messages. 2018-05-02 14:55:10 +02:00
JC Brand
f9aa75b69e Refactored message attributes and rendering.
- set `username` on the message object,
  instead of always using `fullname` with fallback to `jid`.
- Distinguish better between `groupchat` messages and normal
  messages in `getMessageAttributesFromStanza`
2018-05-01 12:30:58 +02:00
JC Brand
4bcf8e7bc3 Mark followup messags so that they can be styled differently 2018-04-30 15:37:37 +02:00
JC Brand
3d42425083 Some UI improvements
- Render images as thumbnails
- Use the image.html template when rendering images from pasted URLs
- Update message and spoiler markup to render avatars
- Use the default avatar as fallback when user doesn't have one
- Instead of 'me' render own name or JID
2018-04-30 15:37:36 +02:00
JC Brand
57f7e31aa1 Add a spoiler message to the mockups 2018-04-30 15:37:36 +02:00
JC Brand
6cce931086 Make sure show is created on all chatbox types 2018-04-24 16:39:39 +02:00
JC Brand
76a47829cd Optimize keyPressed slightly 2018-04-24 14:35:29 +02:00
JC Brand
7807b19905 Debounce show similarly to other methods 2018-04-24 14:34:19 +02:00
JC Brand
71be72b50c Automatically grow/shrink input as text is entered/removed 2018-04-24 14:33:00 +02:00
JC Brand
59a72efe1b Refactor MUC message sending
To make it more similar to how messages are sent in private chats and to
reuse methods as far as possible.

Removed `sendChatRoomMessage` and `clearChatRoomMessages`
2018-04-24 11:09:36 +02:00
JC Brand
a15c9e54d0 Also test for when XEP-0363 is not supported
Updates #161
2018-04-22 17:47:34 +02:00
JC Brand
74f9952b24 Move sendChatState methods to the models 2018-04-22 04:25:05 +02:00
JC Brand
2850ef0485 Don't show delayed chat state notifications 2018-04-22 04:09:24 +02:00
JC Brand
133df99aec Honor the filesize restrictions of the XMPP server
updates #161
2018-04-18 11:35:33 +02:00
JC Brand
c01e9f8265 Move methods from chatbox view to message view
Specifically the methods related to requesting an upload slot and uploading a file.
Also show a progress indicator while a file is being uploaded.

Updates #161
2018-04-17 15:21:38 +02:00
JC Brand
dad8eb2f48 Remove separate file converse-http-file-upload
It contained only `overrides` and some HTTP upload code was in other
modules.

Current thinking concerning overrides:

Usage of `overrides`, while useful in certain cases, should in general
be discouraged, since it's in essence "monkey patching" which makes it
more difficult to know whats executing at runtime and more difficult to
refactor.

Splitting modules up between XEPs is not always that useful. Some XEPs,
like HTTP Upload (and MAM comes to mind) have their functionality spread
out over single and group chats (and pubsub) and might for practical
purposes be considered "core" enough to not try and keep them in
separate modules (which inevitably requires overrides or a fundamentally
rethinking the architecture).

Where splitting code between modules makes a lot of sense is in keeping
Backbone Models and Views separate (so that alternative view libraries
like Vue could be used) and probably in keeping Single chats, MUC,
PubSub and MIX separate.

updates #161
2018-04-17 15:21:30 +02:00
JC Brand
de6ecbf07a Render messages via a new MessageView view
updates #161
2018-04-17 15:21:26 +02:00
JC Brand
6cab7fcc41 Fix failing tests due to refactoring
updates #161
2018-04-17 15:21:16 +02:00
JC Brand
584f293d05 Updated and refactored the work from @worlword
* Use Promises instead of callbacks
* Update to latest (Last Call) version of XEP-0363
* Move non-view specific methods to models instead
* Add more tests

updates #161
2018-04-17 15:21:09 +02:00
JC Brand
9c2a5bd3b8 Merge branch 'worlword-httpFileUpload' into http-file-upload 2018-04-14 07:50:29 +02:00
JC Brand
a9d2881888 Fix disco hierarchy
Previously we kept all entities and their items (which are also
instances of _converse.DiscoEntity) in a flat array.

Instead, we should have a tree-like structure where items are stored
on the relevant entity (and recursively on other items).
2018-04-14 07:36:24 +02:00
worlword
3b1d27636d problem fixed, that file-upload would not start. Also did some code cleanup 2018-04-13 11:45:43 +02:00
worlword
ca40cf6541 removed EmptyLines in ChatView.js and Change Lineendings to LF in toolbar_fileUpload.html 2018-04-12 09:37:58 +02:00
worlword
bf3e6f2363 some code-changes to align with the coding standard 2018-04-12 09:24:41 +02:00
worlword
7660dbfb31 merge httpFileUpload-Branch with master 2018-04-12 07:43:39 +02:00
JC Brand
3d29567ab6 Revert "Don't show typing from different device CSN messages"
This reverts commit 7303e96cdb.

Instead of dropping the feature entirely, we can check if the CSN is a
carbon message.
2018-04-11 18:46:50 +02:00
worlword
c9a9d01112 used code from 'http-file-upload' branch. Buttons are now added to the toolbars through converse-http-file-upload.js. 2018-04-11 17:09:32 +02:00
worlword
fa80749658 refactoring based on the review from jcbrand 06.Apr.2018 2018-04-11 15:29:41 +02:00
JC Brand
7303e96cdb Don't show typing from different device CSN messages
To avoid showing them erroneously would mean keeping track of used
message ids which seems like more work than justified by the feature.

Fixes #1026
2018-04-10 20:56:54 +02:00
JC Brand
9528d81c00 Move various MUC methods onto the Backbone.Model
To more cleanly separate views and models and to make MUC in headless
mode more viable.

Refs #1032
2018-04-10 18:59:02 +02:00
JC Brand
9a526d4194 Refactoring of the XEP-0085 Chat State Notifications code
* Distinguish between CSN messages and other types of messages
* Properly clear previous notifications
* Better handling of notifications from multiple users (in MUC)
* Rename methods to make clarify intent
2018-04-06 17:02:28 +02:00
worlword
7839f20846 fixed sendMessage for so that tests will work again 2018-04-05 08:45:58 +02:00
worlword
b23712aec3 added httpFileUpload to converse.js 2018-04-03 11:20:57 +02:00
ChaosKid42
fce9ee0db9 replace geoURIs (e.g. from Convesations) by links to openstreetmap (#1054)
* replace geoURIs by link to openstreetmap

* Added testcase
2018-03-31 18:29:01 +02:00
JC Brand
deff6e071c Remove the clear button. It was pretty useless
because it didn't actually clear anything permanently and upon page
reload the messages were there again.
2018-03-30 14:16:06 +02:00
JC Brand
516352c413 Disable emoji images by default 2018-03-30 14:16:06 +02:00
JC Brand
cb0b99ac37 Bugfix. Show message author in spoiler messages 2018-03-17 14:39:30 +00:00
JC Brand
2f46bb8ce7 Fix failing tests 2018-03-14 23:10:31 +00:00
JC Brand
2045741fbe Add api.chatviews.get method 2018-03-14 13:27:36 +00:00
JC Brand
044907e4fa Looks like focus parameter was never used. 2018-03-14 13:27:36 +00:00
JC Brand
03d7f07a4c Bugfix. Chat wasn't being opened when receiving a message. 2018-03-13 19:11:49 +01:00
JC Brand
ca141401a0 Fix failing tests 2018-03-13 13:42:00 +01:00
JC Brand
c958a1822c Remove unused code (due to bootstrap dropdowns) 2018-03-11 12:12:15 +01:00
JC Brand
c10a2596e3 Eagerly render emoji picker and avoid overflow in overlay view 2018-03-09 23:16:53 +01:00
JC Brand
9c0b7c71cd Render OTR menu as a bootstrap dropdown 2018-03-09 17:30:42 +01:00
JC Brand
9825d6e777 Use bootstrap dropdown to render the emoji picker 2018-03-09 14:51:24 +01:00
JC Brand
8bddd0d7f4 Some work on showing emoji in a dropdown 2018-03-09 11:46:50 +01:00
JC Brand
914a55707d Replace col- classes with Sass mixins 2018-03-09 10:12:05 +01:00
JC Brand
d4d3d4c838 Merge branch 'split-muc' into bootstrap4 2018-03-05 16:51:33 +01:00
JC Brand
dcc6244fc2 Don't overwrite default avatar with undefined 2018-03-04 07:29:24 +01:00
JC Brand
47aad31899 Tricky refactoring.
Removed `_converse.chatboxviews.showChat` and trying to simplify how
chats are created and when they're shown.

Prompted by the work to split the MUC views into a separate plugin
2018-02-21 23:47:02 +01:00
JC Brand
ede21e7c32 Remove controlbox tabs and show rooms and contacts panels together 2018-02-16 14:16:55 +01:00
JC Brand
732c923324 Bugfix. Don't show hidden MUCs when new message received. 2018-02-14 13:44:17 +01:00
JC Brand
fc560bf8ac Use this.content instead of ev.target, which is null
when using converse.js inside a webcomponent
2018-02-14 12:30:30 +01:00
JC Brand
5517e3554c Add a new configuration setting: root 2018-02-09 16:08:39 +01:00
JC Brand
03b9447f1d Asynchronously render spoiler button only if all clients support it 2018-02-08 17:48:15 +01:00
JC Brand
1759cc1672 Advertise support for spoilers 2018-02-07 17:25:49 +01:00
JC Brand
4732f315ed Use "hidden message" instead of spoiler 2018-02-07 14:39:45 +01:00
JC Brand
4742e66b69 Fix linting errors and failing tests 2018-02-07 14:21:46 +01:00
JC Brand
9c3e9233e4 Test that the spoiler button is hidden when OTR is active 2018-02-07 13:16:34 +01:00
JC Brand
86a962bee2 Don't render message form via separate Backbone.View
Appeared to only complicate things...
2018-02-07 11:16:24 +01:00
JC Brand
20706cb617 Expand the spoiler tests 2018-02-06 21:21:21 +01:00
JC Brand
f6db2a9167 Use template to render the spoiler message. 2018-02-06 18:58:06 +01:00
JC Brand
3b850c77ea Move focus method into ChatBoxMessageForm 2018-02-06 18:05:12 +01:00
JC Brand
7ee0b19409 Move code to chatview 2018-02-06 18:05:12 +01:00
JC Brand
253c4d736e Focus the textarea after toggling between spoiler or not 2018-02-06 18:05:12 +01:00
JC Brand
19d9e281ae Update css and keep input and textarea values across toggles 2018-02-06 18:05:12 +01:00
JC Brand
d5348ea899 Render the message form via VDOMView 2018-02-06 18:05:12 +01:00
JC Brand
4e077aac08 Start moving code from the plugin to converse-chatview 2018-02-06 18:05:12 +01:00
JC Brand
400bdf775d More refactoring of spoilers code 2018-02-06 18:05:12 +01:00
JC Brand
fa06b528e1 Also show spoiler for sent messages. 2018-02-06 18:05:12 +01:00
JC Brand
b1ffb34b76 Add docstrings 2018-02-06 18:05:12 +01:00
JC Brand
7f9f62476d Render spoiler button as a template 2018-02-06 18:05:12 +01:00
JC Brand
34b592be09 Fixes #921 2018-01-29 15:16:44 +01:00
JC Brand
e5006b0004 Fixes #1000. Scroll down when maximizing a chat room 2018-01-29 11:40:42 +01:00
JC Brand
4b64522c18 Fixes #993. 2018-01-22 12:41:45 +01:00
JC Brand
db8fd5c018 Turn off message animations by default 2018-01-18 11:41:47 +01:00
JC Brand
210a75b02f Scroll down again after all images have been loaded. 2018-01-17 19:29:11 +01:00
ChaosKid42
115b887802 Send emojis as unicode (#977)
* render the shortnames as unicode when sending a message

* updated CHANGES.md
2018-01-17 17:03:23 +01:00
JC Brand
e2a545a849 No need for animations during testing 2018-01-16 16:55:38 +01:00
JC Brand
8997af7890 Updates #984 Add color-fadein animation for messages 2018-01-16 16:36:23 +01:00
JC Brand
2cb4a36a6b Updates #984: Remember scroll position when using infinite scroll. 2018-01-16 15:38:08 +01:00
JC Brand
95bf69b8a9 Maintain simplicity by using only one variable instead of two 2018-01-16 14:56:58 +01:00
JC Brand
f1c8de15d1 Make DOM traversal methods more generic and move to utils. 2018-01-16 14:56:23 +01:00
JC Brand
9b3c6d1a3a Fixes #985 Give help messages a "message" class and isodate data attr. 2018-01-15 20:32:24 +01:00
JC Brand
e9bba77b36 Add test for /help command in private chats 2018-01-15 18:41:04 +01:00
JC Brand
76170427ec Bugfix. Exclude chat events when looking for first/last/prev message
Also, don't clear events in `renderMessage`, try to keep it free from
side-effects.
2018-01-11 22:47:37 +00:00
JC Brand
8d999b2802 Explicit plugin dependencies. Make hide_open_bookmarks false by default 2018-01-10 13:26:50 +00:00
JC Brand
c22aff9b13 Use newest pluggable.js.
`optional_dependencies` is now called `dependencies`
2018-01-10 13:13:26 +00:00
JC Brand
4f227b467b Take all messages except chat events into consideration
when determining where to insert new messages
2018-01-10 12:45:12 +00:00
JC Brand
da1f103532 Bugfix. Don't include .chat-events, to avoid null reference 2018-01-09 13:40:32 +00:00
JC Brand
2c7a942fbc Remove unused declaration 2018-01-09 13:40:32 +00:00
JC Brand
16b8946dd9 Updates #978: Use moment and generate date in correct format 2018-01-04 13:11:51 +00:00
JC Brand
199e2e7e27 The refreshWebkit hack appears to no longer be necessary 2018-01-04 12:11:03 +00:00
JC Brand
671691353a Use Backbone.NativeView instead of Backbone.View 2018-01-03 20:41:03 +00:00
JC Brand
f1820e5fcd Set dependencies for chatview and muc 2018-01-03 16:08:30 +00:00
JC Brand
da3670d9f0 MUC Join/Leave messages now also show a new day indicator 2018-01-03 13:37:25 +00:00
JC Brand
46e54667c3 Simplify insertDayIndicator method 2018-01-03 13:37:25 +00:00
JC Brand
cc29d16929 Simplify message insertion into the chat area 2018-01-03 13:37:25 +00:00
JC Brand
e360d9eead Removed jquery from converse-chatview 2018-01-02 21:52:55 +00:00
JC Brand
ee15e9e331 Fix and test message ordering 2018-01-02 20:25:30 +00:00
JC Brand
21a46a15ae Bugfix. markScrolled wasn't debounced for MUC. 2017-12-25 11:59:54 +00:00
JC Brand
91526c3a46 Bugfix. Query all messages 2017-12-25 09:46:13 +00:00
JC Brand
1e1aa1d9c9 Some refactoring while removing jquery 2017-12-24 17:09:49 +00:00
JC Brand
334a24c938 Use template to render .chat-info messages
Also did some work on removing jQuery from converse-chatview
2017-12-24 17:09:49 +00:00
JC Brand
fb35ed844a Avoid flashing when opening chat room. 2017-12-20 11:02:46 +00:00
JC Brand
3f94028377 Speed up rendering of chat boxes by lazily rendering the emoji picker 2017-12-20 11:02:46 +00:00
JC Brand
19979c4840 Listen to animationend event instead of using setTimeout 2017-12-20 11:02:46 +00:00
JC Brand
32621b8327 Clear chat_state timer when closing chat 2017-12-19 19:17:38 +00:00
JC Brand
a4a1c80b5b Bugfix. In a MUC the /help command didn't render properly 2017-12-06 17:01:17 +01:00
JC Brand
1adc4938a8 Fetch VCard when starting a chat with someone not in the user's roster 2017-12-03 20:50:13 +01:00
JC Brand
e701305d05 Bugfix. Avatar wasn't being shown 2017-12-02 18:07:31 +01:00
JC Brand
063908e032 Append spinner when fetching newer messages 2017-12-02 15:09:04 +01:00
JC Brand
fa7ca46d12 Text fixes based on feedback from translator 2017-11-23 12:10:40 +01:00
JC Brand
141eaa6a39 Fix rendering of heading for headlines boxes 2017-11-17 14:41:54 +01:00
JC Brand
ca0cbb1c31 Use an img tag instead of canvas for rendering avatars 2017-11-17 13:19:21 +01:00
JC Brand
bac1d22205 Fix: In chatbox heading two avatars sometimes get rendered 2017-11-17 12:50:16 +01:00
JC Brand
adb92a2eda Two small UX fixes
- Don't close the emojis panel after inserting an emoji.
- Focus the message textarea when the emojis panel is opened or closed.
2017-11-12 20:08:37 +01:00
JC Brand
3514d6d56b fixes #316
- Also allow private chats to be opened via URL fragment.
- Make sure to clear the URL fragment when the relevant chat is closed.
2017-10-31 23:11:27 +01:00
JC Brand
b9b9689668 Fixes #912 maximize method in converse-minimize fails...
if the `controlbox` is not there.

Also, make `converse-controlbox` and `converse-muc` optional dependencies of
`converse-minimize`.
2017-08-29 12:21:53 +02:00
JC Brand
3b8c2d1b00 Various bug and timing fixes due to the previous refactoring 2017-08-16 14:16:24 +02:00
JC Brand
273da9e876 Move chatboxes collection and overview into separate plugin 2017-08-16 12:32:15 +02:00
JC Brand
eed936ff64 Trying to fix timing/heisenbugs on Travis 2017-08-09 14:21:24 +02:00
JC Brand
5a67d985dc emoji: Render shortname in textarea, not unicode. 2017-08-09 12:33:00 +02:00
JC Brand
a9d1e5c235 Don't use forEach on nodeList objects (not supported by all browsers). 2017-08-08 15:32:53 +02:00
JC Brand
0a47f60f94 Emit new event `afterMessagesFetched` 2017-07-21 15:09:50 +02:00
JC Brand
e4ebcc8f71 emoji: various css and html changes to improve ui/ux in converse and inverse 2017-07-16 15:04:54 +02:00
JC Brand
ffdd4e25f3 emoji: remember category and skin tone selection 2017-07-16 14:12:17 +02:00
JC Brand
8c4f6ffe03 emoji: Listen for clicks on a larger surface area 2017-07-16 13:41:01 +02:00
JC Brand
e3d2abf0ec emoji: Make sure emojis are also rendered for ascii emoticons 2017-07-16 12:50:59 +02:00
JC Brand
49f26d8e49 emoji: Allow the assets path of Emojione to be overridden 2017-07-16 12:30:40 +02:00
JC Brand
f8c6467feb emoji: Show only one skin-tone at a time (including the "neutral" one) 2017-07-16 12:29:09 +02:00
JC Brand
3ebe41384d emoji: Remember scroll position when rerendering the emoji picker 2017-07-16 12:29:09 +02:00
JC Brand
9a5f2fce61 emoji: Add a skin-tone picker to the emoji toolbar 2017-07-16 12:29:09 +02:00
JC Brand
12510a9689 emoji: Fix rendering of emojione images 2017-07-16 12:29:05 +02:00
JC Brand
972c31be1d emoji: Allow the option of using emojione (now that we sanitize) 2017-07-16 12:29:02 +02:00
JC Brand
284e884766 Add js-xss and use it to sanitize message HTML 2017-07-15 19:15:48 +02:00
JC Brand
f69e39dc8b Reuse code for submitting a message 2017-07-15 15:58:11 +02:00
JC Brand
cf1e8f2921 Fix failing test for emoji picker 2017-07-15 15:16:38 +02:00
JC Brand
4ea50de927 Use emoji instead of emoticon 2017-07-15 15:14:47 +02:00
JC Brand
b2a118ca9e Refactor slide methods in utils and use them for toolbar menus 2017-07-15 11:03:22 +02:00
JC Brand
ce2548c838 Remove the visible_toolbar_buttons.emoticons config option
in favor of `visible_toolbar_buttons.emoji`.
2017-07-15 08:17:41 +02:00
JC Brand
67578c9747 Merge branch 'master' into emoji 2017-07-15 07:16:37 +02:00
JC Brand
6ef0536e31 Some work on using es6 promises 2017-07-10 21:14:48 +02:00
JC Brand
9a9eae3fcf Use esnext to auto-generate es2015 syntax 2017-07-10 17:46:22 +02:00
JC Brand
40e7ee1ae6 Initial stab at using ES2015
Mostly replaced ``var`` with ``let`` and ``const``.
Also added a few arrow functions.
2017-07-10 12:49:20 +02:00
JC Brand
5ab1693136 logging: Add deprecation warning for updateSettings
and also use the Strophe.LogLevel levels for logging in general.
2017-07-05 11:33:55 +02:00
JC Brand
f81a94baf1 Move updateSettings to the private API.
Also add an API method for exposing new promises.

Update the plugin and API documentation, specifically concerning the above
changes.
2017-07-05 11:03:13 +02:00
JC Brand
4e467044d3 Some usability fixes around the toolbar and emojis 2017-06-24 11:34:01 +02:00
JC Brand
70f56b31f4 Merge branch 'master' into emoji 2017-06-24 11:04:19 +02:00
JC Brand
36e078c9f6 utils: Rename saveWithFallback to safeSave 2017-06-23 20:17:58 +02:00
JC Brand
3e8e770517 chatview: use utils.isPersistableModel 2017-06-23 18:19:20 +02:00
JC Brand
02e5921415 Fix problem of stuck/hanging tests on TravisCI 2017-06-19 15:05:22 +02:00
JC Brand
10ae9a5ea4 Remove the ability to use emojione for rendering emoji
Creates an XSS opening.
2017-06-17 01:01:52 +02:00
JC Brand
ca53a8d8ef Add support for Emojis 2017-06-17 01:01:52 +02:00
JC Brand
076af0970f Make spinner into a template 2017-06-14 19:43:02 +02:00
JC Brand
e1dace59ae Bugfix. Don't scroll down on archived messages
when already scrolled up.
2017-06-14 19:43:02 +02:00
JC Brand
0d22f5c33c Bugfix. Make sure to only append after a single message. 2017-06-14 19:43:02 +02:00
JC Brand
fcbeff4c72 Better check to know whether we can save the model 2017-06-06 22:12:54 +02:00
JC Brand
4f94a1f193 Refactor code that increments unread messages counter
Removed the "fetching_messages" hack.
2017-05-16 11:18:58 +02:00
JC Brand
c5383ac22f chatview: trigger 'add' event when fetching messages
Otherwise they don't appear when reloading the page.

I'm not completely happy with the resulting workaround to avoid that messages
restored from sessionStorage increment the unread messages counter, but it'll
have to do for now.
2017-05-15 18:37:54 +02:00
Novokreshchenov Konstantin
7c057910a8 Inconsistent unread messages count updating #873 (#874)
* Consistent unread messages count updating on ChatBoxView, Minimized ChatBoxView, RosterView and page's title

* Add tests for checking unread messages count updates in different GUI parts

* Update docs/CHANGES.md

* document windowStateChanged event in events.rst
2017-05-03 09:06:28 +02:00
Novokreshchenov Konstantin
4b46ec3f8c #591 Unread message counter is reset when the chatbox is closed (#867)
* chatview: disable handling onMessageAdded when fetching messages during initialization

* update CHANGES.md
2017-05-01 13:05:58 +02:00
JC Brand
f3d29e016e Show unread messages counter next to roster contacts 2017-04-24 15:57:22 +02:00
JC Brand
0bab19fafd Render help messages via templates. 2017-04-21 18:35:34 +02:00
JC Brand
3ea43c6a0f Use noConflict to avoid polluting globale namespace
with lodash and Backbone.
2017-04-21 18:06:27 +02:00
JC Brand
1a40b7aefb TypeError: converse.log is not a function 2017-04-20 08:55:51 +02:00
JC Brand
1e100a67e3 Catch error when destroying 2017-04-19 15:40:27 +02:00
JC Brand
de2f33f333 Send button must be translateable and should type "submit" 2017-04-11 07:32:17 +00:00
JC Brand
9ecb3e227f Bugfix. Better check to see if spinner is already active 2017-04-04 11:21:25 +00:00
JC Brand
09251f32c8 Remove the english translation files. No need for them. 2017-03-31 02:26:35 +00:00
JC Brand
a4be25e05c Fix time format to show seconds instead of month 2017-03-31 02:01:53 +00:00
Anshul Singhal
99647438ac Adds the send button at bottom of chatbox (#796)
Fixes #796 New config option: `show_send_button`

* Adds show_send_button setting to docs

* Change log updated

* Improves send button CSS, style fixes and documentation corrections

* Adds missing setting in rendering template for headlines
2017-03-30 12:40:17 +02:00
Soumit Bose
c976f3f079 Fixed typing status for typing from different devices (#802) 2017-03-16 16:28:59 +01:00
Soumit Bose
2c5ecd7120 Make messages' time format configurable (#797)
Fixes #675 

* Made time format configurable

* Made changes to values of time_format

* Removed user restrictions on time format

* Added documentation for time-format config

* Edited changes.md

* Edited config doc

* Modified time-format explanation

* Added link to moment

* Added test to check rendered time

* Edited CHANGES and removeunncessary lines from time format checking spec

* Removed unncessary spaces
2017-03-12 11:32:38 +01:00
JC Brand
f24e7c0905 Remove scrollDownMessageHeight. Fix failing test 2017-03-03 15:12:48 +01:00
JC Brand
0bc0072fea chatview: Mark whether scrolling was automatic
so that we don't confuse it with the case where it was manual.
2017-03-03 14:55:03 +01:00
JC Brand
2c88545b28 Fix edge case with /me messages. Show in italics. 2017-02-28 07:58:17 +00:00
JC Brand
21fbb7b7ac Fix failing test by making sure chatroom gets destroyed 2017-02-27 21:21:38 +00:00
JC Brand
08fc0823de More scrolling improvements 2017-02-25 22:26:54 +00:00
JC Brand
2998ef818a Chat rooms weren't being scrolled down after page reload 2017-02-25 07:48:28 +00:00
JC Brand
9817aedea7 No need to set templates on the _converse object.
If it's needed in another plugin, it can simply be `require`'d.
2017-02-19 11:12:26 +01:00
JC Brand
f83043e5ab Fix reference to missing parameter. 2017-02-17 22:07:11 +01:00
JC Brand
65fa39dd81 Properly fix and test the /me command 2017-02-15 21:03:02 +00:00
JC Brand
a033899946 Fix leaky abstraction of MUC 2017-02-15 20:30:32 +00:00
JC Brand
70d385bc28 Use AMD-aware cryptojs from NPM. Update to 0.2.16 2017-02-15 10:02:15 +00:00
JC Brand
fe6a9ca748 Merge converse-api and converse-core
Otherwise `require('converse-core')` can be called, exposing the inner converse
object.
2017-02-14 14:35:52 +00:00
JC Brand
f73a1d3fc0 Don't name the modules.
According to the require.js docs this shouldn't be done.
http://requirejs.org/docs/whyamd.html#namedmodules
2017-02-13 14:37:17 +00:00
JC Brand
5f67797202 Fixes #749 2017-02-13 14:00:05 +00:00
JC Brand
63888dd454 Fix failing tests 2017-02-02 21:55:05 +00:00
JC Brand
0424df9edc Rename the closured converse object to _converse
to indicate that it's private and to differentiate it from the outer "global"
converse object.
2017-02-02 20:43:48 +00:00
JC Brand
9b48b2d6bd Update plugins to not depend on converse-core
To illustrate that this is not necessary (and also not possible with
non-bundled plugins).
2017-02-02 18:34:13 +00:00
JC Brand
b7b9711296 Rename the closured converse object to _converse
to indicate that it's private and to differentiate it from the outer "global"
converse object.
2017-02-02 18:34:13 +00:00
JC Brand
8d69357b52 Debounce scrollDown 2017-02-02 16:06:49 +01:00
JC Brand
bcbeb8da6c Case-insensitive matching of moderation commands.
Also add `/subject` as alias to `/topic`
2017-02-02 14:56:56 +01:00
JC Brand
081f075aa9 Add eslint with lodash checking and apply its suggestions 2017-02-01 14:02:18 +01:00
JC Brand
7ad39cfdb9 Fetch the room information before opening the room. 2016-12-05 06:07:01 +00:00
JC Brand
a5f76abcf1 Updates #729. Minimized chat boxes don't stay hidden
Bug got introduced during fix for #677

Eventually had to do a significant refactoring, to more consistently use the
`hidden` class instead of `display: None`. (relevant for #695)
2016-11-22 17:42:58 +01:00
JC Brand
02864fd175 Don't assume the parent is the top-level message element. 2016-11-02 13:42:20 +00:00
JC Brand
151a476084 Find more cases of children that should be find. 2016-11-02 13:38:42 +00:00
JC Brand
ed01081240 Use $.find instead of $.children
To allow for better template customization.
2016-11-02 13:33:20 +00:00
JC Brand
0d4993ef86 Merge branch 'master' of github.com:jcbrand/converse.js 2016-11-02 13:13:34 +00:00
JC Brand
ec9ed96568 Remove {{message}} interpolation.
It's not used and confuses people. Instead the message gets inserted via
`$.text`, to avoid injection attacks.
2016-11-02 11:10:07 +00:00
JC Brand
b6c88b92fd Don't listen exclusively for keypress in a textarea
Could be a different element as well.
2016-10-28 13:32:35 +00:00
JC Brand
6f1ac50893 Move leaky MUC abstractions out of converse-chatview.js
In the process also updated `updateSettings` to allow merging.
2016-10-27 14:56:31 +02:00
JC Brand
01c3a50cc2 Add code to generically and recursively update user settings.
Also moved chatview specific settings.
2016-10-26 14:14:49 +02:00
JC Brand
2d6d4df1f1 Use requestAnimationFrame instead of setTimeout
For better performance.
2016-10-17 13:16:41 +02:00
JC Brand
862af642ff Move avatar markup to a template and make size configurable 2016-10-14 23:42:54 +02:00
JC Brand
90d1071df0 Load templates in the respective plugins 2016-09-23 12:35:01 +02:00
JC Brand
600f98afcb Attempt to mitigate against performance degrading attacks. 2016-09-12 13:13:57 +02:00
JC Brand
89e5bd7c54 Update to pluggable.js 0.0.2 2016-08-31 10:39:11 +00:00
JC Brand
31f0e069ab Decided to use 30secs instead of 20. 2016-08-18 10:19:43 +00:00
JC Brand
4d28ae3c11 Tweak timeouts regarding status notifications.
Send a <paused/> notification after 10 seconds, instead of 20.
Auto-remove a typing notification in the chat box after 20 secs instead of 10.

This is to avoid situations where the status notification gets
auto-removed while the typer keeps on typing without long enough breaks in
between for <pause/> states, thereby causing the recipient to not be aware that
they're still typing.
2016-08-18 09:28:48 +00:00
JC Brand
6ac4f2601d Fixes #677 Chatbox does not open after close
Problem was a race condition between hide and show methods.
Solution was to not hide the chat box during the initialize method.
2016-08-12 20:38:39 +00:00
JC Brand
fe46f2ee77 Chat state notifications are now also sent out from chat rooms. 2016-08-12 12:52:33 +00:00
JC Brand
a1e24c95c9 Add nickname to chat message when clicking on room occupant.
Allows you to easily mention someone in your message.
2016-07-26 09:31:23 +00:00
JC Brand
d6ef4fc5ca Add method hook for adding more attrs to send to the message template 2016-07-01 14:27:26 +02:00
JC Brand
be122af3ed Add tests for rendering of error messages. 2016-06-23 08:56:15 +02:00
JC Brand
e06a34a905 Some initial work on show messages with type "error" 2016-06-22 18:47:07 +02:00
JC Brand
9e8674ef55 Rename ChatBoxView.insertIntoPage to ChatBoxView.insertIntoDOM
to ensure naming consistency, we have the same method on `ChatRoomView`.
2016-06-22 15:54:22 +02:00
JC Brand
b90ad3aa6e Don't check visibility before hiding.
In some cases the element is not visible,but we want to set 'display: None'
regardless, for example in cases where you only want one single chat of
multiple to be visible at any one time, while hiding it behind a sidebar.
2016-06-17 17:43:09 +02:00
JC Brand
705c043852 Fixes concerning tab visibility 2016-06-17 09:30:47 +00:00
JC Brand
249fb0fec5 Don't increment messages counter for MAM messages. 2016-06-16 10:39:08 +02:00
JC Brand
62c170273e Allow plugins to have optional dependencies.
This change refactors out the plugin code from converse-core into
src/converse-puggable.js

Additionally, plugins now have an optional attribute `optional_dependencies`
which is an array of dependencies which are "nice-to-have" but not essential.

Work has also been done to ensure that a plugins' dependencies are first loaded
before the plugin itself.
2016-06-10 08:26:29 +00:00
JC Brand
2b88db812d Don't show "new messages" indicator for archived messages 2016-05-30 17:18:07 +00:00
JC Brand
a050015e61 Add processing hints to chat state notifications
So that they're not stored in MAM.
2016-05-30 16:53:31 +00:00
JC Brand
128317692d Wasn't explicitly scrolling down if the chat was already visible. 2016-05-30 14:32:05 +00:00
JC Brand
848126638e Make the new msg indicator clickable 2016-05-28 12:25:44 +00:00
JC Brand
c738d085c4 Indicate to the user when there are unread messages
further down in the chat box.
2016-05-28 10:07:11 +00:00
JC Brand
032fe0d417 always scroll down when user sends a message 2016-05-27 12:42:31 +00:00
JC Brand
bbc23764e7 Initial work on keeping track whether the user scrolled
so that we don't scroll down while the user is reading messages further up.
2016-05-27 10:07:43 +00:00
JC Brand
aaaacf2513 Also show the day for the first received messages.
Until now, new days were only indicated for messages received on different days
*after* the day's messages.
2016-05-25 06:24:42 +00:00
JC Brand
a6c3b46237 Move the drag-resize code into a separate component. 2016-04-01 12:46:19 +00:00
JC Brand
1c375d5821 Cleaner separation between converse-mam and converse-chatview
Also add the ability to disable MAM for certain chats (such as the headlines chat).
2016-03-31 09:17:39 +00:00
JC Brand
4c6bd1f49c Cleaner separation between minimize/trimming feature and core
One visible effect is that when this component is now removed,
minimize buttons are not visible on the chat boxes.

updates #622
2016-03-31 08:40:25 +00:00
JC Brand
8e3c97ae61 Some fixes to minimization of chats. Updates #622
Don't call trimChats in onChatBoxAdded event. Reduntant because it will be
called after maximization and after being shown.

Add new method getShownChats and don't trim if only one or zero chats are being
shown.

Don't trim chats when in responsive mode.

Don't call trimChats unnecessarily in the render method of the trimmed chats
thingy.
2016-03-30 12:18:45 +00:00
JC Brand
2869485c1e Fixes to trimming of chats.
- Don't trim if not connected.
- Move trimChats call to converse-minimized
- Immediately hide view to avoid race conditions.
2016-03-28 14:59:23 +00:00
JC Brand
8f601e8c94 Found more stuff in core that should go to converse-minimize 2016-03-28 14:08:50 +00:00
JC Brand
ed4b9a85cc Remove ChatBox views when they get closed.
Previously views were only hidden, but not removed. This was an unnecessary
"optimization" which introduced unnecessary complexity.

Problem solved was that closing minimized chats didn't dereference the model
for hidden "normal" chat views, causing an exception to be raised when trying
to log out.
2016-03-28 12:23:36 +00:00
JC Brand
2d846961c2 Use 'type' = 'chatroom' instead of 'chatroom' boolean. 2016-03-21 10:00:15 +00:00
JC Brand
8e18d736b4 fixed indentation of comments 2016-03-19 22:16:00 +00:00
JC Brand
fa69bb1b0a trimChats called in converse-minimize. Return the view. 2016-03-19 21:56:55 +00:00
JC Brand
08222182c5 Move VCard functionality into separate plugin 2016-03-16 11:21:27 +00:00
JC Brand
fe47773c7f Move ChatView into separate plugin. 2016-03-14 14:04:36 +00:00