Commit graph

352 commits

Author SHA1 Message Date
7c4229f1fa Use dot notation instead of subscript for response. 2020-06-28 17:54:16 -07:00
b81aad78dd Rename CSS vars color_theme_* and color_site_* to color_*.
There was just no point to naming them like this because all of the
color vars obviously represent some part of the site's color theme.
2020-06-25 10:03:50 -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
e1033d0138 Move tagname related functions from common.js to tag_autocomplete.js. 2020-06-17 12:42:08 -07:00
634f6f5188 Fix metadata spinner not closing when 0 items on clipboard. 2020-05-28 19:02:07 -07:00
18c2f0dc78 Rename vars photos -> results since results may contain albums. 2020-04-02 23:27:47 -07:00
0e0f296270 Let tags on this page buttons execute search immediately.
1. When the list is long, scrolling back up to hit to search
button is annoying.
2. If you select too many, there's no way to know if you're
going to wind up constructing a search with 0 results thus
wasting your time.
2020-04-02 22:52:33 -07:00
db43cac583 Fix broken tagsonthispage buttons, need to pass ul not input. 2020-04-02 22:49:33 -07:00
dd3d40de53 Experimental: Allow search results to include albums.
I've been thinking about this for a while but couldn't think of
the perfect way to implement it. I still haven't, so instead I'm
just starting with something and we'll see how to improve later.
At any rate, I can update the rest of the system to expect Albums
coming out of search so that if I ever have a better algorithm
everything else will already be ready for it.
For this first experiment, just any photos that are part of an album
will send that album out as a result. It doesn't even respect the
limit parameter, it's really just to see how it feels to use.
2020-04-02 22:36:40 -07:00
89c308c4a4 When submitting search, check for values left in the tag boxes.
I found pretty commonly that it was easy to leave some text in the
box and forget to press enter, so that tag never got added to the
actual search.
2020-04-02 17:11:29 -07:00
7fc4604025 Simplify this already_have now that the other code is gone. 2020-04-02 17:09:09 -07:00
84833832e4 Improve this comment and some whitespace. 2020-04-02 17:06:50 -07:00
f8bd34eb7a Let add_searchtag and remove_searchtag take the ul instead of box.
With a name like add_searchtag you'd think it'd be past the point
of reading box input, and deeper into the abstraction zone. But nope,
it wasn't. I'll try to take this a few steps further from here too.
2020-04-02 17:04:23 -07:00
3cb8f0adcf Remove code intended for tag trumping but currently useless.
I think at one point I was using full qualnames on the tag objects
in the mmf uls. But now they just show their base name, so this
code is useless. And I don't think I'll reinstate it because tags
have multiple parents now and I don't want to implement all the
lineage checking in the client js. We'll just let the server handle
the slightly less efficient query.
2020-04-02 16:56:44 -07:00
00ad82e07c Dedent this code by doing an early return instead of if. 2020-04-02 16:25:19 -07:00
9ac91d3850 Add tag delete button to specific tag page.
On the main tag listing, for child tags, you only get an unlink
button on hover. So if you want to delete a child tag you'd have to
unlink, then refresh, then delete. Now you can just go to its page
and delete it there.
2020-02-27 14:57:27 -08:00
30a0715980 Add photo delete buttons to hovering toolbox.
I tried putting them in the #left but it was looking seriously ugly.
Actually #left is always ugly because the variety of info and buttons
and text alignments. Hover toolbox is not ideal and I don't want it
to become a dumping ground, but deleting should be a rare action and I
don't want it right next to stuff like the basic metadata.
2020-02-27 14:15:13 -08:00
a88fcc2092 Move the clipboard checkbox into metadata list too. 2020-02-26 18:41:17 -08:00
66f73a6aab Move the photo filename out of list to top of left. 2020-02-26 18:40:03 -08:00
596eb86f6e Move the refresh metadata button into metadata bullet list. 2020-02-26 18:39:19 -08:00
10b674e8d8 Add entry_with_tagname_replacements for use on tagname inputs.
Unfortunately, when adjusting the box's value, it causes the datalist
to disappear, and it only comes back after you press another key.
I can't figure out how to make the datalist reappear automatically
with js.
2020-01-15 20:29:56 -08:00
53888a1787 Fix #photoviewer <a> from being expanded to fill the whole pane. 2020-01-15 20:18:40 -08:00
56e34bd245 Rename vars box, button -> add_tag_textbox, add_tag_button. 2020-01-15 18:48:12 -08:00
fa7f5b7b17 Don't use (+) for the syns anymore, looks like the must button. 2020-01-15 18:12:12 -08:00
cdf6ee2038 Use <span> for tag objects with no link or onclick.
To suppress the pointy <a> tags, you know.
2020-01-15 18:11:48 -08:00
b22516cf01 Remove the 'void' option from tag_object link.
Now that all <a> tags are pointy, there is no need for this fake link.
Its only purpose was to make <a>s that had an onclick but no
url get the ol' pointy.
2020-01-14 23:12:43 -08:00
47c0a7221c Prototype of album drag-and-drop moving.
I'm not entirely happy with the way that native drag-and-drop looks,
the transparent bit that you hold while dragging looks dumb.
Will have to look into control / shift clicking to multiselect.
Also just using browser confirm() for now since I haven't made my
own dialog for that kind of thing yet.
2020-01-14 23:04:22 -08:00
0ef3c7d6bf Tags on this page: add separate buttons for must, may, forbid. 2020-01-14 16:44:12 -08:00
491e58ecdd Replace <div id="header"> with <nav id="header>. 2020-01-14 16:43:43 -08:00
723c96c4f2 Greatly simplify the jinja code for tag_object. 2020-01-14 15:11:07 -08:00
c185ca6bf7 Oops, replace wrongly used variable search -> link. 2020-01-13 23:18:48 -08:00
89bfca8f9f Add endpoint for photo generate thumbnail. 2020-01-12 14:52:03 -08:00
ffe0be1c37 Rearrange these arguments to be in the same order as next line. 2020-01-12 14:42:17 -08:00
ac40c86e86 Rename receive_callback -> tag_action_callback. 2020-01-12 14:41:31 -08:00
7e085d7585 Rename receive_callback -> login_register_callback. 2020-01-12 14:37:04 -08:00
b7b33a63ee Rename receive_callback -> add_remove_photo_tag_callback. 2020-01-12 14:36:48 -08:00
f23cebecfe Add the album basic thumbnail to their cards. 2020-01-11 18:05:44 -08:00
41058ccc9e Unindent album card macro. 2019-12-21 01:48:36 -08:00
fcf7a460b2 Unify album_card and root_album_card macros. 2019-12-21 01:47:33 -08:00
c984159a76 Minor css tweaks. 2019-09-11 01:13:10 -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
1a395886ef Set !important on #content_body regrids for stickyside pages. 2019-08-26 15:18:33 -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
ff72a5d26c Redo login.html css to be grid based. 2019-08-26 14:54:29 -07:00
a75540ce25 Replace login and register with real form elements. 2019-08-26 14:34:50 -07:00
7ecfeca96c Allow setting display name during registration. 2019-08-26 14:32:51 -07:00
6635a1e740 Column-gap for everyone! Not just stickyside pages. 2019-08-25 18:07:53 -07:00
ced98d0c42 Use grid-row-gap instead of not last margin-bottom. 2019-08-25 18:00:36 -07:00
b67aa63b26 Add a comment explaining this css. 2019-08-25 17:47:02 -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
600cb45ddb Add grid-row-gap between album toolbox buttons. 2019-08-25 17:23:33 -07:00
a83f365b2a Use #content_body grid-column-gap instead of #left, #right margin. 2019-08-25 17:23:17 -07:00
78dd1417ca Give the login and register boxes the .panel class. 2019-08-23 13:32:35 -07:00
f3b8c4875d When selecting orderby=random, hide the asc/desc dropdown. 2019-08-23 13:26:20 -07:00
45d8f0df1a For orderby=random, don't add -asc -desc to the URL. 2019-08-23 13:25:21 -07:00
a7d93b7223 Simplify the code for add_new_orderby a little bit. 2019-08-23 13:24:47 -07:00
94140a5a88 Realign the HTML for the orderby options. 2019-08-23 13:23:49 -07:00
79ed0ee186 Various CSS for panels and margins. 2019-08-14 13:49:08 -07:00
f0409bf90f Move search #error_message above #right instead of spanning both. 2019-08-14 13:47:59 -07:00
b683413be0 Try different themes with the ?theme query. 2019-08-14 13:43:35 -07:00
62f36151c4 Make login and register buttons green.
Now that I'm using disabled buttons in some places I want
gray to avoid using gray for anything else.
2019-06-15 17:03:54 -07:00
349fb33199 Disable directory refresh button if no directories. 2019-06-15 17:03:23 -07:00
7bd9d45863 Say "Create album" instead of child on main albums page. 2019-06-15 17:03:07 -07:00
8063f338f8 Add Refresh Directories button to album toolbox. 2019-06-15 16:04:33 -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
36a2ed9f88 Remove unnecessary _form functions that can be direct calls. 2019-06-15 02:42:33 -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
c7e4bf16d2 Pull spinner code into own file spinner.js.
For the purposes of editor.js this does not bring much improvement,
but now I can easily make spinners for other things.
2019-04-27 15:42:02 -07:00
09e80f5dba Replace bespoke add_, create_child buttons with confirm buttons. 2019-04-27 15:33:28 -07:00
2f6f4675ee Give #left a right margin instead of 95% width & centering. 2019-03-22 18:36:44 -07:00
572349c1f1 Show the child / photo count on the tooltip as well. 2019-03-16 13:07:29 -07:00
1b5770b81a Somewhat improve appearance of album cards on narrow screens.
Previously, on very narrow screens, the album cards were spilling
out of the container. Now they are better contained but I am
still not 100% satisfied with the margins between them.
2019-03-16 13:07:00 -07:00
cc98def9fb Remove margin-bottom from last child of #left. 2019-03-16 12:24:50 -07:00
59901cb344 Give #left a right margin instead of 95% width & centering. 2019-03-16 12:24:19 -07:00
9b72b3dff0 Use CSS Grid on photo.html, resolve some Chrome/FF differences.
- In Firefox, the image under flex would be full-res height
  instead of staying screen height.
  In this new Grid-based layout the image is the correct size.
  Left toolbox still uses flex, no problems with it.
- Redid the classing of the photo_viewer and eliminated
  photo_img_holder so that all media types follow the same markup.
- Added a CSS variable for tracking narrow mode instead of relying
  on coincidental properties like flex settings.
2019-01-16 19:22:21 -08:00
b864397242 Have bookmark editor show errors on non 200 responses. 2019-01-13 15:05:03 -08:00
a0faec9639 Have album editor show errors on non 200 responses. 2019-01-13 14:44:21 -08:00
c8f7239e19 Remove unnecessary margin-top from #left elements.
margin-bottom is enough to keep the space between elements,
margin-top was just adding an ugly distance from the header.
2019-01-01 17:21:44 -08:00
760ddfc6b0 Rename color_site_theme to color_theme_primary; and secondary. 2019-01-01 17:20:22 -08:00
6dcf47cab7 Remove duplicated markup between list/grid photo cards. 2018-12-27 15:30:30 -08:00
669247415f Add counts to the parent and child hierarchy headers. 2018-12-23 16:00:28 -08:00
29e999ccac Remove "children/photos" in favor of hover text.
To reduce visual clutter.
2018-12-23 15:59:50 -08:00
746d094d81 Remove duplicated markup between list/grid album cards. 2018-12-23 15:51:38 -08:00
be976d584c Tiny markup cleanup for album card. 2018-12-23 15:36:40 -08:00
3d81b5508c Oops, add data-id to the list view album card. 2018-12-23 15:28:55 -08:00
d736c81100 Minor alignments within cards. 2018-12-21 23:44:11 -08:00
1f45be9c39 Provide #right first, since #left is often slower to load. 2018-11-17 17:52:40 -08:00
dfbdaa5e99 Let specific tag name be a link. 2018-11-17 17:44:17 -08:00
59fdda6c6b Use a similar hierarchy box style as the album page. 2018-11-17 17:37:34 -08:00
e562658d42 Remove unnecessary extra indent. 2018-11-17 17:36:47 -08:00
5dcb86eed5 Rearrange some css. 2018-11-17 16:57:07 -08:00
3788c844bf Let album title editor use same font size as title itself. 2018-11-17 16:55:47 -08:00
074594a8bc Fix #right button_with_confirm from width-jumping on load.
And any other similar element.
2018-11-17 16:53:35 -08:00
e25e0798c9 Add editor button placeholder to stop page jump on load. 2018-11-17 16:50:41 -08: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
e7d3a652a7 Change largest limit option to 200.
Accidentally commited the number 250 on search.html earlier. Oops.
Anyway I was finding 100 too limiting sometimes.
I will think about making this configurable eventually.
2018-11-04 18:38:32 -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
70d0e64309 Add a CSS class to photo cards for selection state.
Planning on adding some rules to make selected cards
stand out in some way, or at least have that possibility.
2018-10-20 02:32:33 -07:00
f9b3f8b0f4 Oops, add missing parentheses to album paste/unpaste buttons. 2018-10-20 02:27:15 -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
d436b32df8 Integrate users with api.js. 2018-09-23 16:50:27 -07:00
8cfa88e45d Integrate tags with api.js and improve sanity of tag endpoints. 2018-09-23 16:41:34 -07:00
af318414e2 Integrate photos with api.js. 2018-09-23 15:52:19 -07:00
bbd4fbd77f Integrate bookmarks with api.js. 2018-09-23 15:43:42 -07:00
3a9ab2b099 Rename photoclipboard.js -> photo_clipboard.js.
To match the namespace photo_clipboard.
2018-09-23 15:17:31 -07:00
616c490391 Merge albums.html and album.html, remove album.js.
The markup for the album listing page and individual album page
were different enough that I decided to make them wholly separate,
but then this left the shared javascript in its own stupid file
unlike any of the other types.
So, I'm merging them as a huge jinja if-else, which is also dumb
but it feels better than all these separate files.
2018-09-23 15:13:31 -07:00
ac79183603 Use more CSS grid on body and content_body.
I learned that grid-template lets you specify row and col
sizes all at once.
2018-09-23 15:08:39 -07:00
20e41ad689 Extremely minor touchups. 2018-09-23 14:57:25 -07:00
3db5c77c2c Use a CSS var for 10% transparency and drop shadow. 2018-09-22 16:01:34 -07:00
2c48b43b71 Use a CSS variable for the secondary theme color. 2018-09-22 01:14:50 -07:00
01a8a6df66 Oops, don't go checking the textbox for tag removal. 2018-09-21 21:32:19 -07:00
f397140e20 Make /logout operate on POST only. 2018-08-17 22:23:40 -07:00
8fdbd49f70 Minor html and style fixes.
Applied wrapping to the description <pre>s,
removed some css that referred to nonexistent things,
move some element tags inside the {%if%} that fills the contents.
2018-08-17 22:05:16 -07:00
251bc04459 Fix photo.html endpoint urls. 2018-08-16 19:45:47 -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
b314d6376f Update the hrefs when saving the bookmark editor. 2018-07-29 00:43:12 -07:00
fd23b563cf Implement bookmark delete on frontend. 2018-07-29 00:36:50 -07:00
8447fb3343 Make deleting and unlinking tags require confirmation.
Added text inside the delete buttons and made them confirm.
2018-07-28 20:25:25 -07:00
949f7177de Add css class gray_button, for more neutral / cancel actions.
Red seems too aggressive and indicates danger when not appropriate.
Gray seems better for reverting to an already safe state.
2018-07-28 20:18:10 -07:00
22d2efa289 Add 'event' to toggle_hoverzoom header for firefox's benefit. 2018-07-28 16:16:16 -07:00
dfff79baa7 Oops, fix broken clipboard reference due to namespace change. 2018-07-28 16:15:15 -07:00
9c354249c9 Rename variable editor -> ed to avoid conflicting with the module.
Even in cases that were not causing problems, for consistency.
2018-07-28 15:17:18 -07:00
977b47522d Add autocomplete to /clipboard. 2018-07-22 20:45:16 -07:00
c840845c7d Add namespacing to albums.js. 2018-07-22 20:21:00 -07:00
63a3ecfa88 Add namespacing to editor.js. 2018-07-22 20:21:00 -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
cf9b6d0725 Workaround autocomplete box sticking around after submitting. 2018-07-22 20:20:54 -07:00
5ec38a93b1 On the tag ancestors, don't display the current tag name.
I was finding it too confusing.
2018-07-22 20:19:05 -07:00
8a12a24e8e Add tag_autocomplete.js.
Instead of embedding the entire tag list in the search.html template
every single time, this script loads the tags from the new,
cache-enabled endpoint /all_tags.json. Then we can use html5
datalists to create autocomplete forms on the search and photo pages.
2018-07-22 20:19:05 -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
984f6eb3c7 Add a clear button to the clipboard tray. 2018-07-14 02:49:45 -07:00
4002cc660e Don't use shortlink for zoom url. It breaks caching. 2018-05-01 21:03:10 -07:00
b19682d1a5 Replace Photo.sorted_tags with jinja filter. 2018-04-28 19:05:51 -07:00
50592f0ab4 Rework tab titles from "Album X" to "X | Albums" etc.
To prioritize the most unique and relevant piece of information.
2018-04-27 20:04:24 -07:00
bdec6cf4a3 Add filter to generate /file/ link with appropriate basename.
Because inlining the |urlencode every time is easy to forget.
2018-04-19 19:29:06 -07:00
21bd211889 Give Users a display_name. 2018-04-15 14:23:24 -07:00
df211454bb Include username and password length requirements on form. 2018-04-15 13:20:08 -07:00
f77ab51b14 Add Album.has_any_photo and has_any_subalbum_photo. 2018-04-15 02:41:24 -07:00
c1fd863999 Add jinja_filters.py with bytestring. 2018-04-15 00:59:54 -07:00