Commit graph

61 commits

Author SHA1 Message Date
33b4799268 Only log "needed but not received" if there are any. 2020-12-26 12:13:54 -08:00
12ee2adedf Add alertresponse to a lot of callback functions. 2020-11-06 22:50:05 -08:00
99e64e358e Add missing semicolon. 2020-11-06 22:22:41 -08:00
d536974025 Add class=panel to /clipboard #left. 2020-11-04 16:57:41 -08:00
7e58c95f15 Mostly failed experiment: tag_autocomplete indexeddb.
The current system has bad performance when you've got 100,000+ tags.
I discovered that when the server returns 304, the browser gives the
ajax a 200 with the full response, and it's not clear to me if js can
know it got a 304. So, the tag set is being fully re-parsed from the
response on every page load. I was thinking that I should store that in
IndexedDB to avoid the parsing step, but... since the JSON.parse is
done by my common.get before it hits this function, it's meaningless.
Not to mention I still have to rebuild the datalist on every page since
of course that state isn't shared between tabs. Not worth the DB stuff.
We'll see what happens next.
2020-09-29 16:52:20 -07:00
adb1d0ef39 Replace all double blank lines with single, improve hash headers.
There was always some semblance that two blank lines has some kind of
meaning or structure that's different from single blank lines, but
in reality it was mostly arbitrary and I can't stand to look at it
any more.
2020-09-19 03:13:23 -07:00
3fb198f994 Add explicit @media queries for wide mode, not just default to override.
Any properties that are different in wide/narrow mode should be defined
in the correct media query. I got tired of having wide mode be the
default and then narrow mode having to unset/initial all the attributes
that aren't relevant to narrow.
2020-09-18 21:12:28 -07:00
9a29048ccf Split sticky_side functionality into _side, _bottom.
This makes the role of each css definition more clear, and could allow
for cases where the side is sticky in wide mode but not sticky in
narrow mode.
2020-09-18 20:37:40 -07:00
dd0ee7a72a Use more const. 2020-09-14 18:33:53 -07:00
139998172f Add spinner.BAIL for cancelling spinner without launching callback. 2020-09-04 11:25:11 -07:00
7f48c3e97c Add css/js classes entry_with_history, _with_tagname_replacements. 2020-09-04 11:20:51 -07:00
295c9b4956 Add return to all onclicks, and ; to other javascript hooks. 2020-09-04 10:37:04 -07:00
05b39c21fd Replace loop uses of var with let/const. 2020-09-03 15:33:37 -07:00
8af340e442 Replace non-global uses of var with let. 2020-09-03 15:31:47 -07:00
fe7b5de427 Replace many uses of forEach with for-of. 2020-09-03 14:18:05 -07:00
8dafe8c4f4 Synchronize Etiquette common.css and YCDL common.css. 2020-09-03 11:50:16 -07:00
bff4a12fcb Add various comments, docstrings, and console.log. 2020-09-03 11:46:26 -07:00
6b037e1120 Move several /batch functions into api.js. 2020-08-30 19:18:06 -07:00
8ae1086727 Remove var holder which is already on the global scope. 2020-08-29 18:58:19 -07:00
7c4229f1fa Use dot notation instead of subscript for response. 2020-06-28 17:54:16 -07:00
a56b5274c9 Read spinner button function from onclick instead of data-onclick.
I think my original reason for doing this was to prevent the button
from being operational until after the spinner initialization has
completed, so you don't get any weird half-functional spinner buttons.
However, in practice I'm finding that I constantly forget about this
and it adds tedium to creating spinner buttons.
Will review if any actual problems come up.
2020-06-17 14:04:27 -07:00
634f6f5188 Fix metadata spinner not closing when 0 items on clipboard. 2020-05-28 19:02:07 -07:00
d273adbf27 Move new #right:before to common.css. 2019-09-11 01:12:04 -07:00
4d235c427c Create #right:before on narrow screens to give a solid background. 2019-09-10 19:38:58 -07:00
14500080c8 Redo clipboard.html css to auto grid instead of specifying each. 2019-08-26 15:15:02 -07:00
5a1e4474a9 Remove unnecessary specifying #left grid-area: left. 2019-08-26 15:03:14 -07:00
d209445bd0 Remove unnecessary specifying #header grid-area: header. 2019-08-26 15:02:53 -07:00
d5c99b407d Set margin:0 for the inputs next to the buttons
Otherwise they've got odd spacing, and we have row-gaps anyway.
2019-08-25 17:36:05 -07:00
79ed0ee186 Various CSS for panels and margins. 2019-08-14 13:49:08 -07:00
b683413be0 Try different themes with the ?theme query. 2019-08-14 13:43:35 -07:00
802c12937b Replace bespoke spinner with new button_with_spinner. 2019-06-15 16:04:06 -07:00
26bcafcbb5 Add style for button:disabled instead of switching classes. 2019-06-15 13:26:39 -07:00
65605253bf Add spacers between these sections of code. 2019-04-27 16:55:47 -07:00
4ddf578d63 Add spinner text to clipboard refresh metadata button.
Also replace usage of own in_progress variable with simply
disabling the button.
2019-04-27 16:55:26 -07:00
707fdcc637 Add album cards and improve album pages.
- album card has placeholder for future thumbnail.
- replaced nested tree hierarchy lists with separate boxes.
- list/grid view also applies to the root listing.
- added a sticky right panel for all the tools. not pretty yet.
- mechanism for adding sticky panel changed. instead of applying
  it to the #right, you apply it to #content_body so that its
  grid layout can be updated properly.
2018-11-12 22:15:59 -08:00
dcfa7a862d Variety of html, css, jinja tweaks. 2018-11-04 18:36:17 -08:00
98d5374d17 Add CSS class sticky_side_right. 2018-11-04 18:32:55 -08:00
588bf59b88 Variety of html, css, jinja tweaks.
- common.css, removed html and body margins so that using
  full height #content_body will not create a scrollbar.
  Simplifies the "fill remaining space" construct I use a lot.
  Added more css variables, I'm thinking about future theming.
- photo_card.css, slightly heightened to improve name clipping.
- clipboard.html, added a small screen mode.
- login.html, centered the boxes and fixed message area being
  too small due to a previous change.
- search.html, simplified some conditional texts.
2018-10-21 18:46:27 -07:00
0ea9f19592 Import api.js into the rest of the pages.
Now we can do anything from anywhere!
2018-09-23 16:53:49 -07:00
3a9ab2b099 Rename photoclipboard.js -> photo_clipboard.js.
To match the namespace photo_clipboard.
2018-09-23 15:17:31 -07:00
3db5c77c2c Use a CSS var for 10% transparency and drop shadow. 2018-09-22 16:01:34 -07:00
1fcacb81fc Update clipboard.html's button function naming scheme like others.
I have finally found a pattern I like which is
function, function_callback, and function_form
for the backend, callback, and button handler respectively.
2018-08-14 23:24:12 -07:00
bea9f905bd Support downloading .zip of arbitrary photos, clipboard.
Now that creating zips of any photo set is easier, we can
let the user download whatever is on their clipboard.
2018-08-14 23:02:06 -07:00
f047235c48 Reorganize a bunch of javascript handlers.
The javascript is very inconsistent between pages. I'm trying to
start using a consistent pattern where the api call is kept in a
separate function from the ones that buttons and input boxes
talk to.
2018-07-29 01:25:53 -07:00
977b47522d Add autocomplete to /clipboard. 2018-07-22 20:45:16 -07:00
d7b9020585 Add namespacing to photoclipboard.js. 2018-07-22 20:21:00 -07:00
c7cce5a4e5 Add namespacing to common.js. 2018-07-22 20:21:00 -07:00
4c65ccaf68 Big! Liberate Groupables from strict heirarchy. Multiple parents.
I found that the strict heirarchy was not satisfying the situation
where one tag is the intersection of two others, but we can only
pick one as the parent

For example, does red_jacket belong under clothes.red_clothes or
clothes.jackets? A search for "red_clothes AND jackets" might
give us someone wearing red pants and a black jacket, so this
definitely needs to be a separate tag, but picking only one
parent for it is not sufficient. Now, a search for red_clothes
and a search for jackets will both find our red_jacket photo.

The change also applies to Albums because why not, and I'm sure
a similar case can be made.

Unfortunately this means tags no longer have one true qualname.
The concept of qualnames has not been completely phased out but
it's in progress.

This commit is very big because I was not sure for a long time
whether to go through with it, and so much stuff had to change
that I don't want to go back and figure out what could be grouped
together.
2018-07-20 13:09:06 -07:00
5c97086df3 Improve hotkey framework by making own file & register function. 2018-07-14 14:19:13 -07:00
5f6d21fdee Give Photos a searchhidden property.
By default, photos with searchhidden do not appear in the search
results. This allows a small number of representative images from
a large album to appear in the results, while the rest can be
found on the album's page.

The same effect could be achieved with a tag and forbid search,
but tag searching has much higher cost and it would be more difficult
to implement as a default behavior without requiring lots of special
checks whenever listing tags etc.
2018-03-09 17:10:27 -08:00