Commit Graph

434 Commits

Author SHA1 Message Date
David Cormier 11e5b6fbda Merge development branch of creesch 2014-02-19 09:58:31 -05:00
David Cormier 2e5e3a45eb Revert "Collapse sidebar with css selector"
This reverts commit 3a5dfd5e94.
2014-02-19 09:53:03 -05:00
Tor Hveem 2452858853 Fix globals. Fix init 2014-02-19 11:28:48 +01:00
Tor Hveem 2aa1e02bea New keybinding: Alt-< to switch to previous buffer. Same key as WeeChat 2014-02-19 10:58:26 +01:00
Lorenz Hübschle-Schneider e5476dfd02 Whitespace fixes, some {} blocks 2014-02-18 18:13:23 +00:00
David Cormier 6814379bdb Merge pull request #154 from torhve/better-string-decoding
Decode and encode array directly without for loop
2014-02-18 09:56:06 -05:00
creesch abefa7430a Implement swiping for mobile devices 2014-02-18 14:40:02 +01:00
Tor Hveem b379d50351 Decode and encode array directly without for loop 2014-02-18 13:25:03 +01:00
David Cormier 27690ada58 Work around a WeeChat protocol inconvenience
Until WeeChat sends a confirmation for init we have to assume
that the commands will be received synchronously even though
they are sent asynchronously
2014-02-17 21:46:00 -05:00
David Cormier ba20a79c72 Send init commands when connection is successful
Initialization commands are sent when we are sure that
the password has been accepted and that the init has been
processed by the weechat relay
2014-02-17 21:19:34 -05:00
David Cormier 8c386f7553 Create helper functions for initialization methods 2014-02-17 21:15:10 -05:00
David Cormier 3a5dfd5e94 Collapse sidebar with css selector
Fixes #152
2014-02-17 20:49:49 -05:00
Lorenz Hübschle-Schneider c490e33898 IRC linky: don't match HTML encoded chars (&#41;, &gt;, etc.) 2014-02-17 20:08:55 +00:00
David Cormier 4e5f239980 Merge pull request #144 from lorenzhs/linkify
Linkify IRC channels
2014-02-17 10:24:00 -05:00
Lorenz Hübschle-Schneider c1760e5433 Fix JS coding style
TODO: rebase this as a fixup. I don't think the github web interface supports that.
2014-02-17 12:37:14 +00:00
Lorenz Hübschle-Schneider 1a5b36b6f7 switchToActivityBuffer: Prioritise notifications
If there is a buffer with a notification, go there. Otherwise, go to one with unread lines.
2014-02-17 12:31:23 +00:00
Lorenz Hübschle-Schneider 93f40c64e9 Fix embed DOM classes
Classes, IDs and Names in the DOM have to begin with a letter. The $$hashKey
however might not, so prefix it with embed_. This also makes the classes more
unique, which is a good thing. Additionally, don't scroll on undefined should that
ever happen.

Fixes #45
2014-02-16 16:55:27 -05:00
Lorenz Hübschle-Schneider 2e963da581 Don't use jQuery, simplify 2014-02-16 16:55:27 -05:00
Lorenz Hübschle-Schneider e48fe29cf8 Automatically scroll plugins into view 2014-02-16 16:55:27 -05:00
Lorenz Hübschle-Schneider eaf5adf467 Linkify IRC channels
Make '#foo' in a message or buffer title clickable, taking the user to the IRC
channel specified, joining it if necessary.
2014-02-16 14:10:56 +00:00
Lorenz Hübschle-Schneider f70f399741 remove unnecessary use of jQuery 2014-02-15 11:39:11 -05:00
Lorenz Hübschle-Schneider f018876987 Fix botched merge 2014-02-14 16:40:44 +00:00
David Cormier 36049447cd Fix jshint errors 2014-02-14 09:32:30 -05:00
Tor Hveem 0f44465faa Better connection / password error handling 2014-02-14 09:16:40 -05:00
David Cormier e68e7dd01d websockets: add support for user specified onmessage 2014-02-14 09:09:09 -05:00
Lorenz Hübschle-Schneider f8f25107de Fix read marker and scrolling behaviour
* don't always jump to the bottom on incoming messages
* don't fiddle with the read marker when loading more lines
2014-02-11 21:45:57 +00:00
Lorenz Hübschle-Schneider 7c2403e7a1 Scrolling: Do not use webkit-specific function to scroll readmarker into view
Sorry for that.
2014-02-11 20:40:25 +00:00
Lorenz Hübschle-Schneider 8068be8de2 Remove setting and calculate number of lines from display properties 2014-02-10 20:18:44 +00:00
Lorenz Hübschle-Schneider 56055d61c8 Make the code a little prettier 2014-02-10 20:18:40 +00:00
Lorenz Hübschle-Schneider 40716ca649 Fix issue with incorrect read marker on startup 2014-02-10 20:15:50 +00:00
Lorenz Hübschle-Schneider 7764fc6910 Dynamically load lines for each buffer on startup
Add setting for number of lines to fetch initally.

TODO: styling
2014-02-10 20:15:50 +00:00
Lorenz Hübschle-Schneider 5a90e2e830 Fix scrolling issue and reduce the number of scrolling events on startup
Don't trigger scrolling on each line when batch loading lines
2014-02-10 20:15:50 +00:00
Lorenz Hübschle-Schneider 32bcb1c943 Fetch more lines on request 2014-02-10 20:15:50 +00:00
Lorenz Hübschle-Schneider 6b31a3e59a Reset favico on unloading. Should resolve bookmark favicon issue.
See https://github.com/ejci/favico.js/issues/23 for detail
2014-02-10 19:26:30 +00:00
David Cormier 0107dabb2d Fix jshint errors 2014-02-09 19:40:25 -05:00
David Cormier 81054f06bd Move specific weechat websocket manipulation in glowingbear.js 2014-02-09 19:40:25 -05:00
David Cormier a49ce938ea Add comments to websocket handlers 2014-02-09 19:40:25 -05:00
David Cormier 1da061fec2 Rename conn module to ngWebsockets 2014-02-09 19:40:25 -05:00
David Cormier 1b1b97c448 Remove unnecessary onmessage function 2014-02-09 19:40:25 -05:00
David Cormier eddffd6e63 Remove spurious dependencies from connection 2014-02-09 19:40:25 -05:00
David Cormier d4a4f1bd7f Create websockets module 2014-02-09 19:40:10 -05:00
Lorenz H-S 7d386f04c2 Use strict comparison operators 2014-02-08 13:20:33 +00:00
Lorenz H-S 0cd4f04740 improve spacing and other syntactical stuff 2014-02-08 13:14:23 +00:00
David Cormier f4ee683100 Only retrieve plugin content when 'Show Content' is pressed 2014-02-06 21:21:49 -05:00
David Cormier 6b12926887 Move plugin to it's own directive 2014-02-06 21:00:07 -05:00
David Cormier 6605a49f7c Rename websockets.js to glowingbear.js 2014-02-06 20:39:58 -05:00
David Cormier 991e870304 Merge pull request #126 from torhve/fix-scrolling
Fix a scrolling bug with chrome
2014-02-05 09:26:51 -05:00
Tor Hveem e4bbb64b4a Sort buffers by number before switching to buffer with activity. This
better resembles how weechat works
2014-02-05 09:11:55 -05:00
David Cormier 4753ef92a7 Merge pull request #111 from lorenzhs/fixComment
Fix comment so my completion doesn't suggest rootscope instead of rootScope
2014-02-05 09:08:00 -05:00
Tor Hveem e96ae165b2 Fix a scrolling bug with chrome 2014-02-05 11:20:16 +01:00
David Cormier 38ac95c863 Merge pull request #122 from lorenzhs/fixfavico
Fix Favico
2014-02-02 06:40:24 -08:00
Lorenz H-S cbd5d145dc Fix Favico
Use one favico instance which is dynamically modified
This uses a feature that is not yet part of the latest favico.js release, and needs
a fix that isn't even merged yet. Both are included in commit
8e624ba7f0
2014-02-02 13:00:17 +00:00
Lorenz H-S f0fe8be18a Do channel indendation in CSS.
Fixes the issue with new query buffers' titles not being shown.

Doesn't introduce any new watchers
2014-02-02 11:26:43 +00:00
David Cormier 1bf6f98bde Add missing () to constructor 2014-01-27 11:14:48 -05:00
Tor Hveem 3879e07e46 Fix Favico 2014-01-22 11:32:08 +01:00
Tor Hveem f9ba30f102 Collapsable sidebar for mobile sized screens 2014-01-22 11:08:07 +01:00
David Cormier 51e01ec6d4 Add missing semicolons 2014-01-22 11:08:07 +01:00
Tor Hveem 0bd443715a Remove autofocus since it is very mobile unfriendly 2014-01-22 11:08:06 +01:00
Lorenz H-S 5ad01dac81 embed youtube over SSL 2014-01-09 21:45:00 +00:00
David Cormier ce37e66a15 Merge pull request #109 from lorenzhs/scrolling
Improve scrolling
2014-01-07 10:42:33 -08:00
David Cormier 222419cdcc Merge pull request #113 from lorenzhs/reduceWatchers
Reduce number of watchers
2014-01-06 10:32:41 -08:00
Lorenz H-S b88b046222 Bind bufferlist only once where possible 2013-12-28 16:58:32 +01:00
Lorenz H-S f38c4b020e Fix scrolling behaviour for good (?) 2013-12-28 16:50:31 +01:00
Lorenz H-S 9b89341b74 Fix comment so my completion doesn't suggest rootscope instead of rootScope 2013-12-26 18:35:03 +01:00
Lorenz H-S fe0c070a6c Only scroll when at the bottom of the buffer
I think this behaviour is a lot more natural. Because it no longer "scrolls to bottom", I also renamed it.
2013-12-23 22:34:21 +01:00
Tor Hveem 797be76c95 try to improve scrolling experience 2013-12-23 22:33:20 +01:00
Lorenz H-S 836edf917d Making compression optional was a stupid idea. Revert.
Instead, add a parameter to the connect function that allows disabling compression.
2013-12-20 16:10:58 +00:00
Lorenz H-S d1e6bd6698 Add UI support for compression 2013-12-20 13:31:37 +00:00
Lorenz H-S bf6e92fc24 Implement support for compression (not enabled yet) 2013-12-20 13:31:31 +00:00
Lorenz H-S f67ac87057 Move dependencies to a different folder
fixes build :)
2013-12-19 16:45:29 +00:00
David Cormier e51932aaa5 Revert "Remove files no longer needed due to use of Bower"
This reverts commit 6ef681f722.
2013-12-19 10:36:48 -05:00
David Cormier 68f24554d1 Remove global for variables 2013-12-17 15:55:41 -05:00
David Cormier c251c3b74c Fix is already defined errors 2013-12-17 15:48:43 -05:00
David Cormier 0912a2b55b Remove extra comma and unnecessary semicolons 2013-12-17 15:39:22 -05:00
David Cormier b23fb71d1d Use strict comparators 2013-12-17 15:36:54 -05:00
David Cormier e2a84470ce Add missing semicolons 2013-12-17 15:35:36 -05:00
David Cormier 6d5573a148 Delete trailing whitespaces 2013-12-17 15:30:22 -05:00
David Cormier cbf6bd9920 Use dot notation in models 2013-12-17 15:29:05 -05:00
David Cormier 09616a34c4 Merge pull request #96 from lorenzhs/bower
Remove files no longer needed due to use of Bower
2013-12-17 11:48:53 -08:00
Lorenz H-S 6ef681f722 Remove files no longer needed due to use of Bower 2013-12-17 19:46:46 +00:00
Lorenz H-S da748f911b Keep message/command history for each channel
* Can be navigated with up/down arrow keys
* Currently entered text is preserved when going into history
* When choosing a history entry, previously entered but not submitted text will be restored to input buffer

Closes #75
2013-12-17 19:37:45 +00:00
Lorenz H-S 2cf47c6161 Visually highlight highlights 2013-12-17 14:37:22 +00:00
David Cormier 887092eb4b Remove unused variables and __proto__ inheritance 2013-12-17 08:44:24 -05:00
David Cormier 27dbb1fc83 Remove global variables 2013-12-17 08:44:24 -05:00
David Cormier d5366c9918 Use strict equals 2013-12-17 08:44:24 -05:00
David Cormier 6d526f7e42 Use not notation for objects 2013-12-17 08:43:22 -05:00
David Cormier 8e83786f72 Add missing semicolons 2013-12-17 08:43:22 -05:00
David Cormier 6562ce22b4 apply jshint on weechat 2013-12-17 08:43:21 -05:00
David Cormier a78f49c0fc Add bindonce and remove 50% of the watchers in the buffers 2013-12-16 11:40:53 -05:00
David Cormier c88576fad2 Add button to count watcher and debug mode
Performance issues are mainly caused by spurious angularjs watchers.
This debug mode provides a button to display the number of registered
watchers in the console.
2013-12-16 11:17:47 -05:00
David Cormier f85b7110da New buffers are always active 2013-12-14 12:53:35 -05:00
Lorenz H-S 9368f2480d Open query when clicking nick in the sidebar 2013-12-14 15:40:05 +00:00
David Cormier 706b5838a1 Return the angular promise on sendMessage 2013-12-14 10:32:14 -05:00
Lorenz H-S f129460426 initalise lastread marker to last line initially fetched from server 2013-12-13 23:59:51 +00:00
Lorenz H-S 78121ff3a6 Add possibility to order channels hierarchically by server 2013-12-08 21:29:48 +00:00
Lorenz H-S c4d29a7eb0 Fix ordering of channels
As channels aren't added right away (but as soon as the info was
received from the server), somehow the orderBy didn't do its job.
2013-12-08 20:42:30 +00:00
David Cormier c03dc77e49 Split initialization commands
Initialization commands are sent individually. Improves connection
speed.
2013-11-09 16:52:26 -05:00
David Cormier 026881a29c Revert "Split messages with newline into multiple messages"
This reverts commit 6dd35fa890.

The commit breaks support for chrome.
2013-11-09 12:40:27 -05:00
Tor Hveem 6dd35fa890 Split messages with newline into multiple messages 2013-11-02 17:43:45 +01:00
Tor Hveem 70abe58afe New keyboard shortcut alt-n: toggle nicklist 2013-10-29 12:50:02 +01:00
Tor Hveem 3c01ad1b68 Fix bug with switching to core buffer when buffer is closed 2013-10-29 12:34:16 +01:00
Tor Hveem 1615f3016b Use angular function to linkify text.
Fixes bugs with HTML escaping in text
2013-10-28 14:37:21 +01:00
Tor Hveem 69200c7854 Prevent user from accidentally leaving the page 2013-10-28 13:55:46 +01:00
Tor Hveem d57127cc84 make class for embedded image, and fix its height parameter so its
better for small images
2013-10-28 13:32:48 +01:00
Tor Hveem 6258303465 New user setting for display embedded content by default 2013-10-28 13:32:47 +01:00
David Cormier 59206770e2 Isolate the nick completion in the inputbar's scope 2013-10-27 17:56:39 -04:00
David Cormier 03cb90c036 Move completeNick method to inputBar directive 2013-10-27 17:56:37 -04:00
David Cormier ef24986431 Move inputbar related events to inputbar directive 2013-10-27 17:56:08 -04:00
David Cormier fcfe8ba4be Create inputbar directive 2013-10-27 17:54:51 -04:00
David Cormier 6055e699ff Modifies angular model instead of dom element
fixes #74
2013-10-27 16:31:37 -04:00
David Cormier 84cc93fbb0 Initialize angularjs routing module 2013-10-27 15:49:51 -04:00
David Cormier 1f455c813a Callback ids cycle from 0 to 1000 2013-10-27 15:41:45 -04:00
David Cormier 51abcc6953 Document messager methods 2013-10-27 12:26:16 -04:00
David Cormier 75e8c87f09 Group all messaging commands 2013-10-27 12:13:10 -04:00
David Cormier 8167b25c36 Remove doSend
Replace calls to doSend with calls to send
2013-10-27 12:07:01 -04:00
David Cormier 0f503fa521 Rename doSendAllWithCallback to sendAll 2013-10-27 12:05:49 -04:00
David Cormier 0c3496f798 Rename doSendWithCallback to send 2013-10-27 12:05:37 -04:00
David Cormier a3ea312773 doSend always doSendWithCallback
The goal of this change is to provide only one way of sending
messages. By default, a callback will always be returned, and
the caller will decide if it needs to use it.
2013-10-27 12:03:45 -04:00
David Cormier 8c51ab18d3 Send all init commands in batch 2013-10-27 11:47:25 -04:00
David Cormier ec4956a379 Implement doSendAllWithCallback
doSendAllWithCallback sends all the messages of the list
and returns a promise that is resolved when all the individual
promises are resolved.

Useful for avoiding long chains of .then().then().then() ..
2013-10-27 11:30:37 -04:00
David Cormier 02f51ad0df Split creating the defer and returning the promise 2013-10-27 11:30:37 -04:00
David Cormier 335ec46fc6 Wrong password test with failure callback 2013-10-27 11:30:37 -04:00
David Cormier d6ceadb1be Fail all callbacks disconnection / error
Callback promises are resolved when their answer is received
If the websocket disconnects or fails before receives its answer,
it's promise is rejected.
2013-10-27 11:30:29 -04:00
Tor Hveem 4596c129f1 support extended colors in nicklist 2013-10-27 11:04:43 +01:00
Tor Hveem e8e44d85ce Maintained cached flatnicklist, maintain shownicklist cached value for
template
2013-10-27 10:50:18 +01:00
Philippe Proulx a415a3ec3c No need to sort the flat nick list for completion
... because the completion function sorts it another way anyway.
2013-10-27 05:06:02 -04:00
Philippe Proulx 2101e52131 Add Escape and Alt+L keyboard shortcuts
* Escape: disconnect
  * Alt+L: focus on input bar
2013-10-27 04:57:56 -04:00
Philippe Proulx 0f1bde187a Support colors in nick list 2013-10-27 04:49:59 -04:00
Philippe Proulx 8ec37d68e2 Support case insensitive nick completion 2013-10-27 04:08:18 -04:00
Philippe Proulx 1eee866347 Do not handle keypress when not connected 2013-10-27 04:08:17 -04:00
Philippe Proulx 5f2a4386f7 Support custom suffix for nick completion 2013-10-27 04:08:16 -04:00
Philippe Proulx ca47fba200 Nick completion support for end user
Closes #24
2013-10-27 04:07:12 -04:00
Philippe Proulx 782b659474 Prevent default action for Ctrl+G
Ctrl+G is used in Chrome/Chromium, at least, to find the next match
(just like F3).
2013-10-27 04:07:11 -04:00
Philippe Proulx 92dc4736ea Switch between buffers with left Alt key only
Right Alt key, which is the same as Ctrl+left Alt, is used in several
keymaps to input special characters, like right Alt+2 in Canadian
French to input '@'. Do not switch between buffers when using right
Alt.

Fixes #67
2013-10-27 04:06:32 -04:00
Philippe Proulx 0da6014711 Swallow space after caret if needed (middle completion) 2013-10-26 19:07:04 -04:00
Philippe Proulx a918923852 Implement IRC nick completion uility 2013-10-26 18:44:48 -04:00
Tor Hveem 902f344d25 move logic into models, attempt at sorting 2013-10-27 00:26:17 +02:00
Tor Hveem 348940bee0 fix + - and * operations of nicklist_diff 2013-10-26 23:40:00 +02:00
Tor Hveem 1a451fd705 Improve hiding/showing nicklist 2013-10-26 23:17:32 +02:00
Tor Hveem a06916f63e Better styles for nicklist, implement UI for hiding 2013-10-26 22:56:52 +02:00
Tor Hveem 404f8c8cba Implement nicklist 2013-10-26 22:19:13 +02:00
Tor Hveem 66963d8329 Style chat time. Hide lines with repeated time 2013-10-26 20:07:21 +02:00
Philippe Proulx ddf491e8f0 Reduce attribute names length 2013-10-26 13:54:51 -04:00
Philippe Proulx 647e8c5af1 weechat.js: support 1/2/3/4 attributes too 2013-10-26 13:50:53 -04:00
Philippe Proulx c7a0ab0715 Fix comment following FlashCode's update of doc 2013-10-26 05:17:12 -04:00
Philippe Proulx 439734a49b Optimize style attributes overriding 2013-10-26 04:49:37 -04:00
Philippe Proulx 9772da0095 Implement full support of WeeChat text styling 2013-10-26 04:30:35 -04:00
Tor Hveem c9f7e9a732 Make scrolling into the bufferlines div, not the whole window
This should improve scrolling experience, especially on webkit.
It also is needed for when nicklist will appear
2013-10-25 22:19:23 +02:00
Tor Hveem d3aa1d768d Only store password if user requests it. 2013-10-25 13:45:29 +02:00
Tor Hveem 09798fed53 Remove old code 2013-10-25 13:45:29 +02:00