This commit adds support for selecting photos and albums individually
via ctrl+click. For that, the event handlers in init.js call to
multiselect now, which collects the photo/album ids and calls the
appropriate method of contextMenu in the end.
If GD is used instead of Imagick, rotating uploaded pictures leads to
a loss of their metadata. Since this is unexpected and maybe a problem,
the diagnostics should show a warning.
This commit displays a warning if it's either not installed or not
enabled in settings.
Previously, we calculated whether there are at least two albums so that
we can actually perform the operation. Due to subalbums this simple
check is not sufficient anymore. Since the rules are more complicated
and we don't have all albums loaded at that point to calculate it
properly, this commit removes the check entirely and always displays
the operations.
The only disadvantage is that if an installation really has just one
album (should rarely happen), the user still sees the merge operation
(not merge all), which results in an album-list with one disabled album.
I think this is okay.
Since we don't show the user invalid merge requests to send to the
server, the user would have to handcraft such requests. Only admins can
merge albums, which we trust anyway. So, let's remove this check.
Especially for albums, it is difficult to which ones are
chosen for an operation, because in contrast to photos, the
only change is the thin blue border.
This commit adds a new CSS class, that is set when items
have been selected. Currently, it sets a 2px border instead
of 1px.
Previously, document.mouse{enter,leave} was used for that. This
has the disadvantage that is doesn't work when the browser is
in fullscreen mode (at least, in Chromium), because the mouse
can no longer leave the document.
With this commit, mousemove is used to switch to fullscreen
in the photo view after the user has not moved the mouse for
some time. It is left again, if the user moves the mouse.
Previously, we allowed that and reported an error in this case. Now,
the user can no longer select a parent album for merging it into a
subalbum. It is still checked on the server, though.