rr-
ecd50f5c88
client/file-dropper: refactor to use events
2016-08-20 22:47:45 +02:00
rr-
9014baab92
client/snapshots: add snapshots browser
2016-08-20 13:01:17 +02:00
rr-
023ec9a976
client/password-reset: fix event binding
...
Every time the password reset form was loaded, the form submit event
listener was attached to a non-disposable DOM node rather than the DOM
node whose life scope was bound to the viewed page. As such, submitting
the form, leaving the page, returning back to it and sending the request
again caused the 'submit' event to fire twice - one time from the
non-disposed event handler and one from the current handler. This
resulted in the request being sent twice, and getting two confirmation
messages on the screen.
Fortunately, since the password reset requests are GET requests, they're
intercepted by the internal cache of the client API facade, so the
client just saw duplicate messages without the requests being actually
sent to the backend - meaning no extra mails were sent.
2016-08-14 16:57:46 +02:00
rr-
1b62daed9a
client/general: clean up, refactor
2016-08-05 23:02:41 +02:00
rr-
9304e309f6
client/settings: add posts per page option
2016-08-05 23:02:41 +02:00
rr-
d5a00fe4b9
client/posts: add note editing
2016-08-05 23:02:41 +02:00
rr-
688740afa9
client/posts: fix mass tag for unprivileged users
2016-08-02 12:27:02 +02:00
rr-
673bb52d4a
client/tags: add ability to turn off suggestions
2016-07-31 23:07:01 +02:00
rr-
3f7ccfaea2
client/users: refactor to match other models
2016-07-26 23:20:15 +02:00
rr-
7022686b77
client/tags: improve privilege checking
...
- Hide fields that are uneditable, rather than disabling them
- Support fragmented edit privileges (e.g. roles than can edit only some
aspects of tags) - up until now the client tried to send everything at
once, which resulted in errors for such cases.
2016-07-26 20:49:48 +02:00
rr-
7488abb332
client/posts: add simple editing
2016-07-17 20:32:00 +02:00
rr-
394e51ed21
client/general: improve scrolling
2016-07-13 17:18:28 +02:00
rr-
5d8dd9cb05
client/paging: fix endless scroll return path
...
Since some refactors it has always been returning to page 1.
2016-07-08 00:54:24 +02:00
rr-
5ac5eb5503
client/general: refactor URL parameter handling
2016-07-08 00:54:24 +02:00
rr-
cd1f4709f0
client/home: change apparance
2016-07-08 00:08:44 +02:00
rr-
fccedc090f
client/posts: add mass tag
2016-07-06 23:03:37 +02:00
rr-
99011b02d7
client/home: fix missing info on featured post
2016-07-06 00:07:46 +02:00
rr-
abd8e9e89c
client/general: handle spaces in autocomplete
2016-07-03 19:38:17 +02:00
rr-
7b4645b54b
client/tags: improve tag regex handling
2016-06-23 12:47:56 +02:00
rr-
f3049e5546
client/tags: add summary view, add tag description
2016-06-23 00:17:11 +02:00
rr-
eb09677bf8
client/general: replace direct API with models
2016-06-20 23:52:09 +02:00
rr-
a697aba1b0
client/general: remove api calls from controls
...
Introduce some missing models along the way
2016-06-18 10:35:20 +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-
0f1e234a5d
client/top-nav: trying out actual mvc
2016-06-13 22:43:07 +02:00
rr-
e800e6c21b
client/comments: fix sort order
...
Each time the user clicked 'comments' tab, the comments were reversed.
2016-06-12 22:19:05 +02:00
rr-
3cbcbf1140
client/general: fix jscs warnings
2016-06-12 22:10: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-
a28b4bdd3e
client/comments: add comment adding
2016-06-12 18:11:56 +02:00
rr-
1e48140b00
client/comments: add global comment list
2016-06-12 14:04:52 +02:00
rr-
7e8a9a0948
client/comments: add comment list view for post
2016-06-12 12:54:08 +02:00
rr-
0908323290
client/posts: add keyboard shortcuts
2016-06-11 22:34:31 +02:00
rr-
56432e6089
client/posts: add transparency grid
...
Can be turned off in browsing settings.
2016-06-11 22:34:01 +02:00
rr-
7566d2e0f3
client/general: respect privileges
2016-06-11 17:36:02 +02:00
rr-
07329d33a4
client/posts: add post view (without comments yet)
2016-06-08 22:43:03 +02:00
rr-
9d6878a1aa
client/posts: bind 'p' key
2016-06-03 19:47:09 +02:00
rr-
c114cec642
client/posts: add safety buttons
2016-06-03 19:47:09 +02:00
rr-
f8e6d07fea
client/posts: add proof of concept for post list
2016-06-02 23:39:38 +02:00
rr-
aa2f4559b7
client/settings: add option to upscale small posts
2016-06-01 23:42:42 +02:00
rr-
fd2df3966d
client/home: show top nav after all, improve looks
2016-06-01 23:42:42 +02:00
rr-
9b0c2012a7
client/home: show post notes (read-only)
2016-05-29 12:41:22 +02:00
rr-
53fd6fb29b
client/home: view featured post, add search form
2016-05-29 12:41:22 +02:00
rr-
1a6ea4f58a
client/top-nav: hide top nav for home
2016-05-29 12:41:22 +02:00
rr-
bab88f4739
client/top-nav: reuse makeAccessLink
2016-05-29 12:40:53 +02:00
rr-
d99c03b9fa
client/home: render disk usage and post count
2016-05-22 22:39:31 +02:00
rr-
7aaa28f9de
client/tags: add setting default tag category
2016-05-22 22:17:11 +02:00
rr-
df5d72d429
client/general: show correct URL in 404 page
2016-05-21 12:03:49 +02:00
rr-
e7fe7d3899
client/general: add 404 page
...
Reuses old 404 image from 1.x branch, may be subject to change.
2016-05-21 11:49:32 +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-
d2b9cece28
views/autocomplete: remove unused nodes
2016-05-20 18:43:27 +02:00
rr-
f2833b6e76
views/tags: automatically add implied tags
2016-05-19 23:32:23 +02:00
rr-
407848706a
views/tags: add tag input control
...
For now, without tag relations
2016-05-18 00:13:17 +02:00
rr-
5736b4adc1
views/tags: add autocomplete control
2016-05-17 11:34:47 +02:00
rr-
d123f27815
clients/general: fix empty view message handling
2016-05-12 00:13:01 +02:00
rr-
b1deb617bc
client/tags: add tag merging, editing and deleting
2016-05-11 23:47:50 +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-
8866a46f68
client/general: rename certain views
2016-05-11 12:17:40 +02:00
rr-
3856e9fd0d
client/general: fix JSCS warnings
2016-05-10 14:13:24 +02:00
rr-
27cce56054
client/tags: add tag category editing
2016-05-10 13:26:17 +02:00
rr-
be0a70355d
client/paging: replace 'var' with 'let'
...
Old habits die hard
2016-05-10 12:18:06 +02:00
rr-
6405fbe9f2
client/general: replace handlebars with underscore
2016-05-09 22:36:29 +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-
266f5c027f
client/tags: add tag listing
2016-04-29 12:58:56 +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-
925bfcecc5
client/help: split search help into sections
2016-04-17 00:03:45 +02:00
rr-
b382f3398f
client/users: add keyboard shortcuts to user list
2016-04-14 21:50:59 +02:00
rr-
ef3dc1fa75
client/paging: refactor manual pager
2016-04-14 21:50:59 +02:00
rr-
00bf279396
client/views: fix access key underline
2016-04-14 21:50:59 +02:00
rr-
286df9faf3
docs+client/users: document user filtering
2016-04-14 19:58:28 +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
rr-
d3979d63dc
client/paging: notify about empty results
2016-04-12 18:25:08 +02:00
rr-
21c15f4cb9
client/settings: add accountless settings
2016-04-11 22:48:47 +02:00
rr-
c543b77aed
client/nav: add user avatar
2016-04-11 21:43:58 +02:00
rr-
1086bca3c2
client/views: fix rendering non-void elements
2016-04-11 19:23:53 +02:00
rr-
d6daf84da0
client/users: add basic users listing
2016-04-11 19:23:53 +02:00
rr-
4dcee37567
client/users: support avatar changing
2016-04-10 18:54:19 +02:00
rr-
e268d679d3
client/views: move form controls to HB helpers
2016-04-10 16:23:33 +02:00
rr-
5053598a13
client/views: extract empty view
...
...so that UsersController doesn't mess with DOM.
2016-04-09 22:39:13 +02:00
rr-
2e1823b708
client/views: replace inheritance with composition
2016-04-09 22:23:24 +02:00
rr-
4821f2ac6c
client/users: add user deletion
2016-04-09 18:41:49 +02:00
rr-
b78d018870
client/login: don't show pw reset w/o working smtp
2016-04-08 20:09:32 +02:00
rr-
5bd7f1fa6c
client/views: move notifications to controllers
2016-04-08 13:48:23 +02:00
rr-
0ceaa8da42
client/views: refactor rendering
2016-04-08 13:48:23 +02:00
rr-
7871c69aa3
client/users: implement account settings
...
(Without avatars yet.)
2016-04-08 10:18:39 +02:00
rr-
51a889e3a8
client/api: protect against null error messages
2016-04-08 09:48:47 +02:00
rr-
fe5946b4b0
client/misc: extract polyfills to separate file
2016-04-08 09:48:47 +02:00
rr-
8a1140eff6
client/api: convert messages to events
2016-04-08 09:48:47 +02:00
rr-
8be93f6c70
client/users: add user view prototype
2016-04-07 00:08:18 +02:00
rr-
5f29fa12c2
client/routing: move routing to controllers
2016-04-06 22:36:04 +02:00
rr-
55cc7b59e4
client+server: switch to yaml config
2016-04-06 22:36:04 +02:00
rr-
92dd958866
client+server: finish password reminders
2016-04-06 17:56:34 +02:00
rr-
42fdb49d1a
client/forms: fix disabling forms
2016-04-06 15:11:20 +02:00
rr-
85ed552fce
client/home: format absolute time
2016-04-05 17:57:26 +02:00
rr-
60a677edf4
client/api: handle connection errors
2016-04-03 12:12:57 +02:00