Commit graph

268 commits

Author SHA1 Message Date
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-
6b77404ecf client/tags: fix handling malformed tag export 2016-08-13 13:38:37 +02:00
rr-
cef3ad8e48 client/models: fix changing avatar 2016-08-13 11:57:27 +02:00
rr-
5200f834f7 client/models: fix modifying lists in post model
The lists in the post model (current state and original state) referred
to the same objects, so that making changes to current state was seen as
if no change has been made. This broke mass tag - it always thought
there were no changes to post tags.
2016-08-08 17:59:49 +02:00
rr-
059bac877b client/models: fix notifying about list changes 2016-08-08 17:45:57 +02:00
rr-
46435182f6 client/posts: fix mass tag not sending version 2016-08-08 17:45:49 +02:00
rr-
79b3973f9e client/general: use resource versioning 2016-08-07 09:55:51 +02:00
rr-
70a65cc0a3 client/notes: fix saving post breaking selection
The problem was with dangling references - the saved post has been
replacing the note collection with entirely new class instances, whereas
the notes control clung onto old references. Now the control detects
such reloads and acts accordingly.
2016-08-05 23:04:29 +02:00
rr-
8e9ddf796f client/notes: add exit prompt for polygon changes 2016-08-05 23:04:29 +02:00
rr-
3235d70b1b client/notes: make content appear at centroids
Previously it used the centroid of polygon's bounding box, not the
polygon's centroid.
2016-08-05 23:04:21 +02:00
rr-
b7149ba7d6 client/notes: make keyboard scaling use centroids
Previously it used first polygon point.
2016-08-05 23:04:11 +02:00
rr-
9013f15c1a client/notes: add scaling notes with shift key 2016-08-05 23:03:43 +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-
7f53abb498 client/tags: remove unused cruft 2016-08-04 00:30:24 +02:00
rr-
67f803a2f2 client/general: fix support for deleted users 2016-08-02 12:27:02 +02:00
rr-
688740afa9 client/posts: fix mass tag for unprivileged users 2016-08-02 12:27:02 +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-
51ea06d837 client/posts: add expanders to edit sidebar 2016-08-02 12:27:01 +02:00
rr-
b9f2db1c63 client/tags: add toggle suggestions opacity 2016-08-01 21:50:00 +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-
9ee973ce1c client/posts: add custom thumbnail discarding 2016-07-31 23:54:29 +02:00
rr-
673bb52d4a client/tags: add ability to turn off suggestions 2016-07-31 23:07:01 +02:00
rr-
97b217dc31 client/tags: add [delete] key support in tag input 2016-07-31 22:35:09 +02:00
rr-
6e3462187d client/tags: disable relations for pasted tags 2016-07-30 23:12:31 +02:00
rr-
e464e69b36 client/general: remove faux href='#' from links 2016-07-30 23:12:31 +02:00
rr-
29bc41f5da client/tags: don't mark duplicated implications 2016-07-30 23:12:31 +02:00
rr-
245ce258a9 client/tags: improve copying tag list
- Don't copy tag count
- Don't copy × button
- Copy spaces between tags
2016-07-30 23:12:08 +02:00
rr-
72072db078 client/tags: show tag suggestions in tag input 2016-07-30 23:10:58 +02:00
rr-
4b75aab816 client/posts: implement exit confirmation 2016-07-30 23:10:58 +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-
dbf44ed58f client/tags: mark used tags in autocomplete 2016-07-30 23:10:58 +02:00
rr-
81afd383fa client/tags: fade out tag colors after 2.5s 2016-07-30 23:10:58 +02:00
rr-
af455b901f client/tags: make implications yellow 2016-07-30 23:10:58 +02:00
rr-
e4954140f8 client/tags: rewrite tag input
Suggestions will be reimplemented in separate commit
2016-07-30 23:10:38 +02:00
rr-
f63851e2cf client/build: fix JSCS warnings 2016-07-30 13:43:15 +02:00
rr-
611cb3b9f9 client/home: fix post not being bound to its model
This resulted in errors while presenting post content control - it tried
to use methods that were available only in the actual model.
2016-07-30 13:41:44 +02:00
rr-
76e9307449 client/tags: fix window title 2016-07-29 11:00:26 +02:00
rr-
ef4806e142 client/posts: display edit link for tagless posts 2016-07-28 23:10:41 +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-
3f7ccfaea2 client/users: refactor to match other models 2016-07-26 23:20:15 +02:00
rr-
d2a5e1056d client/models: discard field declarations
This has important side effect that matters when we check for data
changes using _orig dictionary. Previously, _orig was empty (so its
members fields were undefiend) whereas the real fields were declared as
nulls. This meant that for new entities, the conditions were always
true, which is unintended. Now both _orig and the class itself are
initially populated with _updateFromResponse which syncs the state
between them, removing the problem.
2016-07-26 23:15:05 +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-
faf461419f client/posts: fix JSCS complaint 2016-07-17 21:15:50 +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-
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-
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-
cd1f4709f0 client/home: change apparance 2016-07-08 00:08:44 +02:00
rr-
6140872cd9 client/posts: add implications recursively 2016-07-06 23:03:37 +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-
7e62751e4e client/tags: fix hovering over autocomplete in FF
Hovering over an autocomplete box always selected the last element
rather than the element under the cursor. This is because resultIndex
was bound by reference.

This looks like a bug in FF implementation of "for (let [x, y] of ...)"
-rather than binding "x" and "y" to the scope of the loop, it's
equivalent to "for (var [x, y] of ...)", which causes nasty anomalies
for functions created inside the loop body.
2016-07-05 23:59:10 +02:00
rr-
abd8e9e89c client/general: handle spaces in autocomplete 2016-07-03 19:38:17 +02:00
rr-
1f413763bd client/posts: remember fit mode 2016-06-29 18:54:49 +02:00
rr-
7b4645b54b client/tags: improve tag regex handling 2016-06-23 12:47:56 +02:00
rr-
2f20bc1619 client/general: fix certain error handlers 2016-06-23 12:47:56 +02:00
rr-
c7f6663c36 client/general: escape entity names in links 2016-06-23 12:47:56 +02:00
rr-
6ea129a9ef client/views: escape HTML
This lets client use < > in tag names.
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-
a6d6aa2f4d client/api: encode spaces (and others) in URLs 2016-06-23 00:15:25 +02:00
rr-
1a75c61f65 client/tags: fix tag categories with spaces 2016-06-23 00:15:25 +02:00
rr-
1c5f44a91c client/tags: fix sorting by tag usage 2016-06-23 00:15:25 +02:00
rr-
c0fd46c890 client/views: fix complex templates 2016-06-23 00:15:24 +02:00
rr-
eb09677bf8 client/general: replace direct API with models 2016-06-20 23:52:09 +02:00
rr-
5f4b67a2bc client/views: improve HTML to DOM converter
Putting a <tr> in the template resulted in... something weird. Adapting
tricks from JQuery with additional fixes.
2016-06-20 21:44:04 +02:00
rr-
e4b4276f3b client/top-nav: fix activating list items 2016-06-19 21:38:39 +02:00
rr-
d5c3d21951 client/api: fix cache not cleared on login
This led to weird anomalies when logging with valid password and then
with invalid one.
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-
e93af8b577 client/events: add experimental EventTarget 2016-06-13 20:11:17 +02:00
rr-
892c154b34 client/polyfill: add NodeList.querySelectorAll 2016-06-13 20:10:55 +02:00
rr-
f24ea3450d client/comments: fix canceling preview 2016-06-12 22:33:31 +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-
0547ec5aa2 client/paging: remember results in history 2016-06-12 22:02:15 +02:00
rr-
95b3b09cbc client/router: remember scroll position 2016-06-12 21:58:05 +02:00
rr-
e10ed4bce8 client/router: refactor call chains 2016-06-12 21:57:19 +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-
4295e1c827 client/misc: fix Markdown permalinks 2016-06-12 18:15:27 +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-
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