Commit graph

83 commits

Author SHA1 Message Date
rr-
5b565e3b00 client/errors: show errors in inline Markdown 2016-09-10 11:36:02 +02:00
rr-
e05e0e5fd2 client/util: refactor Markdown formatter code 2016-09-10 11:36:02 +02:00
rr-
7fa8593b0a client/general: improve URL escaping
Specifically, cater for /, + and % in URL components.
2016-09-04 02:07:22 +02:00
rr-
997eb3de63 client/tags: fix detecting changes to names
Since 243ab15 the order of tag aliases matters, so the changes need to
pick up also permuting - which were ignored before.
2016-08-28 23:48:50 +02:00
rr-
cf1d15354d client/paging: avoid redrawing header navigation 2016-08-28 23:40:28 +02:00
rr-
e83e1b06a1 client/general: remove spurious console.log 2016-08-28 22:23:20 +02:00
rr-
ad8ed89e3c client/general: show empty thumbnails as grid 2016-08-23 23:14:05 +02:00
rr-
d5e197e6ea client/general: add empty href for link buttons
In e464e69 I removed href='#' but I noticed that it broke some things.
Readding href serves two purposes:

- it makes links reachable with Tab key
- it makes links clickable with Enter key

The alternative to this approach was to introduce [tabindex] and [role]
attributes. But not only using tabindex=0 with <a/> is questionable,
it'd require adding a keyboard handler that'd intercept space and return
key presses and simulated link clicks. Since it's best to leave this
kind of thing to the native UI, I went with readding hrefs instead. I
believe that hash hrefs, even though being a common practice, are silly,
so I decided to settle down with empty hrefs.

As a bonus, I added a snippet that prevents middle mouse clicks from
opening such links/buttons in new tabs, which was the motivation for
e464e69.
2016-08-22 01:40:30 +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-
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-
67f803a2f2 client/general: fix support for deleted users 2016-08-02 12:27:02 +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-
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-
394e51ed21 client/general: improve scrolling 2016-07-13 17:18:28 +02:00
rr-
5ac5eb5503 client/general: refactor URL parameter handling 2016-07-08 00:54:24 +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-
1a75c61f65 client/tags: fix tag categories with spaces 2016-06-23 00:15:25 +02:00
rr-
c0fd46c890 client/views: fix complex templates 2016-06-23 00:15:24 +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-
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-
892c154b34 client/polyfill: add NodeList.querySelectorAll 2016-06-13 20:10:55 +02:00
rr-
3cbcbf1140 client/general: fix jscs warnings 2016-06-12 22:10:20 +02:00
rr-
4295e1c827 client/misc: fix Markdown permalinks 2016-06-12 18:15:27 +02:00
rr-
7e8a9a0948 client/comments: add comment list view for post 2016-06-12 12:54:08 +02:00
rr-
9e13c05517 client/misc: fix invalid markup for SJIS 2016-06-11 22:33:33 +02:00
rr-
8303c08437 client/users: make avatars clickable 2016-06-11 17:36:02 +02:00
rr-
7566d2e0f3 client/general: respect privileges 2016-06-11 17:36:02 +02:00
rr-
abd679888a client/general: make fatal errors fatal 2016-06-11 17:36:02 +02:00
rr-
d445a4c93f client/general: simplify input creation 2016-06-08 22:51:15 +02:00
rr-
07329d33a4 client/posts: add post view (without comments yet) 2016-06-08 22:43:03 +02:00
rr-
009e13c6d8 client/polyfill: add .querySelector to NodeList 2016-06-08 22:39:49 +02:00
rr-
c114cec642 client/posts: add safety buttons 2016-06-03 19:47:09 +02:00
rr-
fd2df3966d client/home: show top nav after all, improve looks 2016-06-01 23:42:42 +02:00
rr-
53fd6fb29b client/home: view featured post, add search form 2016-05-29 12:41:22 +02:00
rr-
6d6cce20dd client/misc: add formatMarkdown() 2016-05-29 12:41:22 +02:00
rr-
bab88f4739 client/top-nav: reuse makeAccessLink 2016-05-29 12:40:53 +02:00
rr-
79f22d27cd client/views: reuse mutation observer 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-
7ea4718b1b client/tags: add suggesting related tags 2016-05-22 22:17:11 +02:00
rr-
98c6128829 client/build: true template precompiling
Rather than putting templates in DOM nodes, output JS functions
themselves.

This fixes transpiling for IE11, where ES6 parts of the templates
wouldn't get passed through Babel.
2016-05-21 10:04:23 +02:00
rr-
052a7ca684 client/general: use 'ctx' variable for templates 2016-05-21 09:46:53 +02:00
rr-
bae238794a client/general: reduce lodash usages 2016-05-21 08:27:10 +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