rr-
fd2b4706a6
client/css: adjust thumbnail margins
2016-08-23 20:55:51 +02:00
rr-
124e871022
client/users: stop native completion
...
Disabled for user registration and editing where it causes more mess
than good.
2016-08-22 21:46:30 +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-
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-
44b2d9b830
client/expanders: change appearance
2016-08-22 01:40:30 +02:00
rr-
c7f36c893f
client/expanders: extract HTML
2016-08-22 01:40:30 +02:00
rr-
2335aaff20
client/tags: fix outline for focused compact tags
...
It was being hidden due to overflow: hidden. In other news, I hate CSS.
2016-08-22 01:40:11 +02:00
rr-
0a326972c3
client/tag-input: add 'add' button
2016-08-22 00:54:11 +02:00
rr-
81f14e154e
client/tag-input: extract CSS
2016-08-22 00:54:11 +02:00
rr-
d0c0652720
client/tag-input: extract HTML template
2016-08-22 00:54:11 +02:00
rr-
5bcf44aa2d
client/posts: implement upload form
2016-08-21 23:43:36 +02:00
rr-
f0ed82b0de
client/models: fix post list missing comment count
2016-08-21 20:11:38 +02:00
rr-
dbd36256ce
client/file-dropper: support Vimperator focus
2016-08-20 22:47:45 +02:00
rr-
03b5e933bf
client/file-dropper: add URL support
2016-08-20 22:47:45 +02:00
rr-
ecd50f5c88
client/file-dropper: refactor to use events
2016-08-20 22:47:45 +02:00
rr-
8feac2950b
client/file-dropper: fix selecting multiple files
2016-08-20 22:47:45 +02:00
rr-
1f54a127d0
client/posts: fix deleting posts
2016-08-20 13:08:02 +02:00
rr-
9014baab92
client/snapshots: add snapshots browser
2016-08-20 13:01:17 +02:00
rr-
03a7bd0d5c
client/api: fix working with UTF8 entity IDs
2016-08-16 21:42:11 +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-
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-
aac0ce6ee4
client/css: improve error messages under comments
2016-08-08 18:00:02 +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-
d23300645f
client/tags: fix tag category template
2016-08-05 23:12:42 +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-
9383fd2b27
client/settings: rearrange the form, add hints
2016-08-05 23:02:41 +02:00
rr-
d5a00fe4b9
client/posts: add note editing
2016-08-05 23:02:41 +02:00
rr-
721900ee2f
client/css: fix wrapping long tags
2016-08-04 00:30:24 +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-
11d3853122
client/css: tweaks margins
2016-08-02 12:27:01 +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-
3b800b9731
client/css: fix button height
...
Regression from 797e5d4
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-
e291369701
client/build: fix minifying adding ghost spaces
...
HTML minifier added ghost spaces around some of <%- %> even despite <!--
--> trick.
2016-07-30 23:12:32 +02:00
rr-
6e3462187d
client/tags: disable relations for pasted tags
2016-07-30 23:12:31 +02:00
rr-
1fbeecb0a2
client/help: correct obsolete information
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-
c1c47de3a5
client/posts: links in edit mode preserve mode
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-
7e6e59417e
client/tags: allow deleting used tags
2016-07-30 13:43:15 +02:00
rr-
f63851e2cf
client/build: fix JSCS warnings
2016-07-30 13:43:15 +02:00
rr-
d91352a3b0
client/general: ditch tabular forms
2016-07-30 13:41:44 +02:00
rr-
797e5d4244
client/css: fix combobox height on Firefox
...
https://bugzilla.mozilla.org/show_bug.cgi?id=454625
2016-07-30 13:41:44 +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-
6635b507f2
client/posts: fix losing query after exiting edit
2016-07-26 23:20:16 +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-
b378ce7ede
client/posts: move relations above tags
2016-07-26 20:38:12 +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-
0db70f7951
client/css: stylize cursor of disabled elements
2016-07-26 19:57:41 +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-
7ae2778e48
client/css: fix sizing of large posts
2016-07-03 18:30:33 +02:00
rr-
83cc53be07
client/posts: show post relations
2016-07-03 18:30:32 +02:00
rr-
1f413763bd
client/posts: remember fit mode
2016-06-29 18:54:49 +02:00
rr-
c8e57146f3
client/tags: add usage count
2016-06-28 22:04:55 +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-
8c424ae4ab
client/tags: fix link to used tags
2016-06-17 21:25:37 +02:00
rr-
7f46f72a74
client/auth: fix password reminder
2016-06-17 00:38:43 +02:00
rr-
974bc7e908
client/css: fix tag delete form ghost margin
2016-06-16 23:42:50 +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-
7116903438
client/css: remove ghost margin near comment form
...
It appeared only on Chrome?
2016-06-13 20:10:11 +02:00
rr-
f1686f8449
client/css: reduce margin around comment form
2016-06-13 20:10:00 +02:00
rr-
6b68c77e17
server/posts: add relation-count token
2016-06-13 20:09:15 +02:00
rr-
c508d37d54
client/css: improve tag edit view
2016-06-12 22:46:22 +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-
b9fc626ace
client/comments: fix link placement for Vimperator
2016-06-12 17:10:03 +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
rr-
56432e6089
client/posts: add transparency grid
...
Can be turned off in browsing settings.
2016-06-11 22:34:01 +02:00
rr-
07603be35e
client/posts: add Vimperator hints to vote buttons
2016-06-11 22:34:01 +02:00
rr-
e9fb93d5c8
server/general: rename _fields to fields
2016-06-11 22:33:33 +02:00
rr-
9e13c05517
client/misc: fix invalid markup for SJIS
2016-06-11 22:33:33 +02:00
rr-
c2606a2555
client/posts: fix handling sidebar errors
2016-06-11 17:45:32 +02:00
rr-
1a8ff11522
client/css: fix border around active post
2016-06-11 17:45:29 +02:00
rr-
fcf9cb13cb
client/css: fix body width in post view
2016-06-11 17:45:29 +02:00
rr-
eec1958280
client/tags: don't fetch all fields
2016-06-11 17:36:02 +02:00
rr-
8303c08437
client/users: make avatars clickable
2016-06-11 17:36:02 +02:00
rr-
7670737873
client/general: reduce visual distractions
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-
abd679888a
client/general: make fatal errors fatal
2016-06-11 17:36:02 +02:00
rr-
2e6e9b40b6
client/general: make search box seen by Vimperator
2016-06-08 22:54:07 +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-
e944e89c54
client/tags: add edit time column
2016-06-08 22:39:49 +02:00
rr-
009e13c6d8
client/polyfill: add .querySelector to NodeList
2016-06-08 22:39:49 +02:00
rr-
3a42b21987
client/css: refactor <nav> css
2016-06-05 21:46:57 +02:00
rr-
a20bf56e75
client/posts: tweak posts list view
2016-06-04 12:32:42 +02:00
rr-
19d8480891
client/users: add counters to user summary
2016-06-03 21:46:25 +02:00
rr-
aa95afb989
client/tags: fix crash without exported tags
2016-06-03 21:37:30 +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-
dcaf650244
client/posts: change hover border
2016-06-02 23:56:56 +02:00
rr-
f8e6d07fea
client/posts: add proof of concept for post list
2016-06-02 23:39:38 +02:00
rr-
802c7feca0
server/search: add safety search for posts
2016-06-02 13:58:08 +02:00
rr-
aa2f4559b7
client/settings: add option to upscale small posts
2016-06-01 23:42:42 +02:00
rr-
d6f27e82c6
client/notes: fix placement after mouse scroll
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-
8d1e23aa63
server/general: flatten responses
2016-05-30 22:54:33 +02:00
rr-
5427b0d25a
client/home: make footer less prominent
2016-05-29 12:49:24 +02:00
rr-
aa71ccb02c
client/home: show who featured the post
2016-05-29 12:48:51 +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-
6d6cce20dd
client/misc: add formatMarkdown()
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-
79f22d27cd
client/views: reuse mutation observer
2016-05-29 12:40:36 +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-
4b3640bf2e
client/css: remove margin above certain headings
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-
7ea4718b1b
client/tags: add suggesting related tags
2016-05-22 22:17:11 +02:00
rr-
fa4412ef90
client/api: let caller disable nprogress
2016-05-22 22:17:11 +02:00
rr-
519f606a39
client/build: Google Droid Sans → local Open Sans
2016-05-21 14:02:08 +02:00
rr-
f721554724
client/build: don't use CDN for FontAwesome
2016-05-21 12:35:41 +02:00
rr-
d8c20b89c6
client/build: organize assets into directories
2016-05-21 12:33:02 +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-
6beffc2ec1
client/home: link to szurubooru code
2016-05-21 11:38:24 +02:00
rr-
2fade2f08c
client/css: improve appearance on small screens
2016-05-21 11:17:11 +02:00
rr-
432d57096e
client/build: pick up changes faster
2016-05-21 10:34:29 +02:00
rr-
94a228b1e7
client/build: roll back to underscore
...
lodash adds extra 50K for no benefit.
2016-05-21 10:04:23 +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
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-
50404d5f5e
client/general: change templates extension
...
...from .Handlebars' (which the project no longer uses) .hbs, to a more
generic .tpl. Additionally, replace hyphens with underscores for
consistency.
2016-05-18 00:15:28 +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-
dbaf71b8eb
client/forms: disable button outline on Chrome
2016-05-17 11:34:46 +02:00
rr-
83086fddd0
client/general: skip vendor JS on watch
2016-05-14 14:47:48 +02:00
rr-
e6be94d139
client/build: always compress vendor JS
2016-05-14 14:47:36 +02:00
rr-
914bee4c64
client/build: compile vendor packages separately
2016-05-14 13:50:39 +02:00
rr-
2cba1a432f
client/general: replace underscore with lodash
2016-05-14 13:12:01 +02:00
rr-
d123f27815
clients/general: fix empty view message handling
2016-05-12 00:13:01 +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-
09bc5f10f9
client/tags: fix hiding table for no results
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-
27533483b2
client/tags: make headers clickable
2016-05-10 14:06:52 +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-
7b342b58b5
client/users: fix links to post search queries
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-
c34b1e3ccf
client/css: fix clipped input text
2016-05-09 22:36:29 +02:00
rr-
58134ae2c6
client/css: remove nprogress spinner
2016-05-09 18:14:22 +02:00
rr-
25de62411f
client/tags: improve table appearance
2016-05-09 11:21:09 +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-
7610761ec8
client/general: add nprogress to API calls
2016-05-08 18:59:11 +02:00
rr-
f083e5fdc8
client/general: scroll to top on page change
2016-05-08 18:56:08 +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-
0d2fc830a6
client/build: add missing dependency
2016-05-08 18:04:06 +02:00
rr-
198cb0af3e
server/users: hardcode available ranks
2016-05-08 16:59:25 +02:00
rr-
58964bcdc9
server/posts: add post listing
2016-05-07 21:50:37 +02:00
rr-
29b57b0af0
client/nav: fix accesskey alignment
2016-04-29 13:24:01 +02:00
rr-
98738dc497
client/users: fix inability to remove email
2016-04-29 13:19:11 +02:00
rr-
d67a1b2f1c
client/css: stylize focused elements
2016-04-29 12:58:56 +02:00
rr-
266f5c027f
client/tags: add tag listing
2016-04-29 12:58:56 +02:00
rr-
0f90196ad5
client/users: fix listing users
2016-04-29 10:17:55 +02:00
rr-
a30886cc70
server/search: rename order: to sort:
2016-04-22 19:37:58 +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-
71e8e32faf
client/users: change search syntax help link
2016-04-17 00:03:56 +02:00
rr-
925bfcecc5
client/help: split search help into sections
2016-04-17 00:03:45 +02:00
rr-
61d2fb88ea
server/tags: add tag listing
2016-04-16 21:24:09 +02:00
rr-
e4239a199c
server/api: refactor + remove ID from user JSON
2016-04-16 15:49:21 +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-
0ddbc64320
client/css: tweak help button appearance
2016-04-14 21:50:59 +02:00
rr-
c2aa497d91
client/settings: decouple settings from controller
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-
35c549493c
server/users: support wildcards in user search
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-
90559ffcdb
client/build: fix IE11 transpiling
2016-04-14 17:50:38 +02:00
rr-
7cf4e6c37d
client/paging: compact page no. for endless pager
2016-04-14 17:50:38 +02:00
rr-
334ff8edcd
client/css: align controls in horizontal forms
2016-04-14 17:50:38 +02:00
rr-
c92c7b722f
client/css: don't use monospace fonts
2016-04-14 17:50:29 +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-
43c657e371
client/paging: don't include empty parameters
2016-04-13 22:15:40 +02:00
rr-
26d46a43bf
client/pager: synchronize page number with URL
2016-04-13 21:33:49 +02:00
rr-
28e85bd21a
client/css: switch to stylus
2016-04-13 20:13:10 +02:00
rr-
d18a8090b1
client/build: transpile ES6 for older browsers
2016-04-13 20:13:10 +02:00
rr-
5796b07908
client/build: don't keep templates in DOM
2016-04-13 18:58:34 +02:00
rr-
b7a67fc01c
views/paging: add endless pager
2016-04-13 00:27:36 +02:00
rr-
7874614be3
client/messages: fix batch messages appearance
2016-04-12 18:25:52 +02:00
rr-
d3979d63dc
client/paging: notify about empty results
2016-04-12 18:25:08 +02:00
rr-
68c966ff7d
client/users: fix patterns in account settings
2016-04-12 13:48:31 +02:00
rr-
21c15f4cb9
client/settings: add accountless settings
2016-04-11 22:48:47 +02:00
rr-
f5272bb5f3
client/api: fix login error handling
2016-04-11 21:43:58 +02:00
rr-
543d0fca57
client/api: cache API requests
...
Specifically, cache all GET requests until first POST/PUT/DELETE
request.
2016-04-11 21:43:58 +02:00
rr-
256a4e49b9
client/css: animate nav link hover color
2016-04-11 21:43:58 +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-
bb3f280c7f
client/build: fix templates with more than 1 _
2016-04-10 22:14:25 +02:00
rr-
4dcee37567
client/users: support avatar changing
2016-04-10 18:54:19 +02:00
rr-
4faf42ee19
client+server/general: fix config references
...
...some references still referred to non-existing config.ini.
2016-04-10 16:23:35 +02:00
rr-
e268d679d3
client/views: move form controls to HB helpers
2016-04-10 16:23:33 +02:00
rr-
7c1876dd5c
client/views: fix radio buttons
2016-04-10 00:25:16 +02:00
rr-
58e0d2e295
client/views: replace fieldsets with divs
...
Although it has nice semantic name, fieldset gives troubles to flexbox,
so I'm dropping it.
2016-04-10 00:24:54 +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-
8e525b48a6
client/general: correct A:R for thumbnails
2016-04-09 22:38:57 +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-
b6df2ed903
server/search: prefer hyphens to underscores
2016-04-09 08:58:06 +02:00
rr-
b78d018870
client/login: don't show pw reset w/o working smtp
2016-04-08 20:09:32 +02:00
rr-
2d8b657559
client/users: tweak settings form
2016-04-08 15:46:31 +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-
90d4401024
client/api: move cookies management to API
2016-04-08 10:03:29 +02:00
rr-
51a889e3a8
client/api: protect against null error messages
2016-04-08 09:48:47 +02:00
rr-
e0516af111
client/build: enable source maps for debug builds
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-
d603fb3fe6
client/style: always show scrollbar
2016-04-08 09:48:47 +02:00
rr-
ea55b662ce
client/style: change tabs appearance
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-
c1816a292f
client/build: don't minify JS for debug build
2016-04-07 18:51:29 +02:00
rr-
26ac304e69
client/style: style focused buttons
2016-04-07 17:28:02 +02:00
rr-
10be5f422d
client/style: make checkboxes focusable
2016-04-07 17:27:48 +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-
9a2a587fb1
client/nav: fix link to user account
2016-04-06 08:11:37 +02:00
rr-
85ed552fce
client/home: format absolute time
2016-04-05 17:57:26 +02:00
rr-
7f4708c696
client/auth: keep cookie after auto auth failures
...
...remove it on any login attempt.
2016-04-03 19:33:48 +02:00
rr-
baf9b1d31a
server/users: track login time
2016-04-03 15:28:10 +02:00
rr-
60a677edf4
client/api: handle connection errors
2016-04-03 12:12:57 +02:00
rr-
e487adcc97
split files into client/ and server/
2016-04-01 18:48:16 +02:00