Commit graph

20 commits

Author SHA1 Message Date
rr-
5ac5eb5503 client/general: refactor URL parameter handling 2016-07-08 00:54:24 +02:00
rr-
fccedc090f client/posts: add mass tag 2016-07-06 23:03:37 +02:00
rr-
54e3099c56 client/general: refactor control flow
- Controller lifetime is bound to route lifetime
- View lifetime is bound to controller lifetime
- Control lifetime is bound to view lifetime
- Enhanced event dispatching
- Enhanced responsiveness in some places
- Views communicate user input to controllers via new event system
2016-06-18 10:35:20 +02:00
rr-
ee829e42d2 client/paging: improve endless scroll 2016-06-12 21:43:20 +02:00
rr-
76882b59ef client/router: introduce own router
I'm tired of page.js lack of documentation around finer quirks, and
being forced to read its crap code. Refactored into classes, removed
unused cruft.
2016-06-12 21:43:20 +02:00
rr-
1e48140b00 client/comments: add global comment list 2016-06-12 14:04:52 +02:00
rr-
7566d2e0f3 client/general: respect privileges 2016-06-11 17:36:02 +02:00
rr-
a32c5d1399 client/misc: remove String.format()
...and replace them with ES6 template literals I've just learned about.
2016-05-21 00:08:43 +02:00
rr-
69fe8ec31a client/general: refactor all the things
- Move controls to the "controls/" directory
- Make controls interface look similar to each other
- Prefix "private" methods and attributes with underscore
2016-05-21 00:08:43 +02:00
rr-
2a4241641c client/events: improve event dispatching
This commit introduces timer-less retry system:

1. Any change to URL is going to stop listening to any messages.
2. If a message is sent and there's no handler that could pick it up,
   the message gets enqueued.
3. The message is sent again to the first handler that attaches itself
   to given event type.

While in theory this is full of holes (no control over the first
handler), in practice, it works quite well.

Additionally, views.listenToMessages was attaching to completely wrong
DOM node; this commit fixes this as well.
2016-05-11 23:47:50 +02:00
rr-
3856e9fd0d client/general: fix JSCS warnings 2016-05-10 14:13:24 +02:00
rr-
be0a70355d client/paging: replace 'var' with 'let'
Old habits die hard
2016-05-10 12:18:06 +02:00
rr-
29b0fde9a7 client/paging: improve endless paging
- Change page number indicator
- Remove most of the scrolling cruft as it has no chance of working
  anyway, thanks to our benevolent browsers
- Scroll to page header if the page is not the first one (I'm surprised
  this even works)
- Use promises rather than timers
- Simplify top page detection using .elementFromPoint rather than
  iterating over all pages. Coincidentally, this seems to work slightly
  better
2016-05-09 11:17:26 +02:00
rr-
a197368bc5 client/paging: fix endless pager issues 2016-04-17 09:24:05 +02:00
rr-
0bc45e9c45 server/search: support -min and -max suffixes 2016-04-17 08:31:46 +02:00
rr-
f34e83b325 client/users: add filtering 2016-04-14 17:50:46 +02:00
rr-
905faf3721 client/css: scale to device width 2016-04-14 17:50:04 +02:00
rr-
a83a896dde client/pager: cache state between navigations 2016-04-14 00:41:34 +02:00
rr-
26d46a43bf client/pager: synchronize page number with URL 2016-04-13 21:33:49 +02:00
rr-
b7a67fc01c views/paging: add endless pager 2016-04-13 00:27:36 +02:00