rr-
e90b8972c7
client/auth: fix being able to rate/fav things
2016-08-23 23:12:29 +02:00
rr-
4ca7c49239
client/auth: fix masstag privilege bypass
...
Visiting mass-tag URL directly ignored masstag privileges and showed
tag/untag controls (although didn't show the controls in the header).
After this change, bypassing mass tag privileges got a little bit
harder. (It's still possible for the user to talk directly to the API
after all.)
2016-08-23 23:12:29 +02:00
rr-
1e9ee0838a
client/auth: hide signup link in top nav if needed
2016-08-23 23:12:29 +02:00
rr-
08c6c2c145
client/auth: show errors early in controllers
...
In other words, verify the privileges client-side before issuing an
request to the server. This commit focuses on routing (e.g. clicking a
link while not logged in), rather than DOM element visibility that
should be already taken care of.
2016-08-23 23:12:29 +02:00
rr-
fec31d7946
client/users: add exit confirmation for edit form
2016-08-22 21:38:34 +02:00
rr-
ea947ed91e
client/tags: add exit confirmation for edit form
2016-08-22 21:38:31 +02:00
rr-
d8d4654849
client/events: adjust event names
...
1. "change" should be used to passive changes.
2. "submit" should be used to form submits.
These are not interchangeable.
2016-08-22 21:36:45 +02:00
rr-
5bcf44aa2d
client/posts: implement upload form
2016-08-21 23:43:36 +02:00
rr-
9014baab92
client/snapshots: add snapshots browser
2016-08-20 13:01:17 +02:00
rr-
46435182f6
client/posts: fix mass tag not sending version
2016-08-08 17:45:49 +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-
0c64d1fe1c
client/posts: add post deleting
2016-08-02 12:27:01 +02:00
rr-
179cf57cb9
client/posts: add post featuring
2016-08-02 12:27:01 +02:00
rr-
3176709288
client/posts: clear messages before submit
...
Saving the post twice resulted in two 'Post saved!' messages.
2016-07-31 23:55:22 +02:00
rr-
193e34aff8
client/posts: improve form behavior when saving
...
- Disable and enable the form
- Notify about success in the sidebar
- Notify about errors in the sidebar rather than using a native alert
2016-07-30 23:10:58 +02:00
rr-
76e9307449
client/tags: fix window title
2016-07-29 11:00:26 +02:00
rr-
1ed7ad4173
client/posts: add simple thumbnail editing
2016-07-28 23:10:40 +02:00
rr-
3d8eaab57a
client/posts: add post content editing
2016-07-27 22:27:33 +02:00
rr-
8de7541bc5
client/posts: fix stripping query for edit page
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-
8a68e182fd
client/posts: implement loop video flag
2016-07-26 20:38:12 +02:00
rr-
865c4f3b79
client/posts: respect edit privileges in sidebar
2016-07-26 20:38:12 +02:00
rr-
7488abb332
client/posts: add simple editing
2016-07-17 20:32:00 +02:00
rr-
651c3f6925
client/posts: fix post edit route
2016-07-17 19:00:40 +02:00
rr-
2a39ec165d
client/general: add title to every page
2016-07-13 21:50:07 +02:00
rr-
8901658c17
client/posts: strip junk from post permalinks
...
Thanks for inspiration, StackExchange
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-
fccedc090f
client/posts: add mass tag
2016-07-06 23:03:37 +02:00
rr-
1f413763bd
client/posts: remember fit mode
2016-06-29 18:54:49 +02:00
rr-
2f20bc1619
client/general: fix certain error handlers
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-
e4b4276f3b
client/top-nav: fix activating list items
2016-06-19 21:38:39 +02:00
rr-
39c0c4f338
client/posts: remember search for prev/next post
2016-06-18 11:47:08 +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-
7f46f72a74
client/auth: fix password reminder
2016-06-17 00:38:43 +02:00
rr-
2ac8d8650c
client/posts: introduce post model
...
Now to replace all the api calls in views with event system... and then
do the same for user, tag and comment
2016-06-14 07:50:22 +02:00
rr-
6fcf81e55d
client/posts: split controllers
2016-06-14 07:50:22 +02:00
rr-
0f1e234a5d
client/top-nav: trying out actual mvc
2016-06-13 22:43:07 +02:00
rr-
3cbcbf1140
client/general: fix jscs warnings
2016-06-12 22:10:20 +02:00
rr-
0547ec5aa2
client/paging: remember results in history
2016-06-12 22:02:15 +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-
b1b261beb8
client/posts: fix safety buttons
2016-06-12 14:10:51 +02:00
rr-
1e48140b00
client/comments: add global comment list
2016-06-12 14:04:52 +02:00
rr-
e9fb93d5c8
server/general: rename _fields to fields
2016-06-11 22:33:33 +02:00
rr-
eec1958280
client/tags: don't fetch all fields
2016-06-11 17:36:02 +02:00
rr-
7566d2e0f3
client/general: respect privileges
2016-06-11 17:36:02 +02:00
rr-
0842d90ca2
client/general: ditch underscore for loops
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-
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-
fd2df3966d
client/home: show top nav after all, improve looks
2016-06-01 23:42:42 +02:00
rr-
8d1e23aa63
server/general: flatten responses
2016-05-30 22:54:33 +02:00
rr-
aa71ccb02c
client/home: show who featured the post
2016-05-29 12:48:51 +02:00
rr-
53fd6fb29b
client/home: view featured post, add search form
2016-05-29 12:41:22 +02:00
rr-
8591449508
client/posts: catch post search route
2016-05-29 12:40:36 +02:00
rr-
87e8fb2e7d
client/general: unimplemented views empty viewport
2016-05-29 12:40:36 +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-
ed05ac3c57
client/tags: fix renaming tag not redirecting url
2016-05-22 22:17:11 +02:00
rr-
dd3774ee57
client/users: fix user update success notification
2016-05-21 12:03:49 +02:00
rr-
524cbd0680
client/users: fix presenting user rank
2016-05-21 12:03:49 +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-
249d6073c0
client/build: remove babel when not transpiling
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-
407848706a
views/tags: add tag input control
...
For now, without tag relations
2016-05-18 00:13:17 +02:00
rr-
414f841944
client/tags: fix unbound EmptyView
2016-05-12 00:12:48 +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-
27cce56054
client/tags: add tag category editing
2016-05-10 13:26:17 +02:00
rr-
da1386c7d2
client/auth: forget user when they try to log in
...
This is to let user log in if their login cookie is broken (for example
when it refers to a non existing user). Normally, the client should
treat errors caused by cookie logins as temporary server failures,
inform the user about it and leave the cookie, so that when the server
is up again, all user needs to do is to reload the page rather than
logging again.
2016-05-08 18:04:06 +02:00
rr-
198cb0af3e
server/users: hardcode available ranks
2016-05-08 16:59:25 +02:00
rr-
98738dc497
client/users: fix inability to remove email
2016-04-29 13:19:11 +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-
925bfcecc5
client/help: split search help into sections
2016-04-17 00:03:45 +02:00
rr-
e4239a199c
server/api: refactor + remove ID from user JSON
2016-04-16 15:49:21 +02:00
rr-
c2aa497d91
client/settings: decouple settings from controller
2016-04-14 21:50:59 +02:00
rr-
f34e83b325
client/users: add filtering
2016-04-14 17:50:46 +02:00
rr-
a83a896dde
client/pager: cache state between navigations
2016-04-14 00:41:34 +02:00
rr-
43c657e371
client/paging: don't include empty parameters
2016-04-13 22:15:40 +02:00
rr-
b7a67fc01c
views/paging: add endless pager
2016-04-13 00:27:36 +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-
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-
8f5890ab67
client/general: refactor promises
2016-04-09 23:41:56 +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-
e12492bd4d
client/api: fix removing cookies on login failures
2016-04-09 22:23:24 +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-
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