Commit Graph

128 Commits

Author SHA1 Message Date
0366df9b5f Alerts: replace 'error' class with 'danger' 2023-03-11 13:30:02 +01:00
f9eefe7b41 Replace generic alert, form and table templates with new Bootstrap equivalents 2023-03-11 13:20:59 +01:00
09f498695d Router: split off from Dispatcher 2023-01-01 19:48:19 +01:00
4d05cebc40 PhotoMosaic: address deprecation notice in usort call 2022-12-25 14:06:54 +01:00
7897172256 Address dynamic class property deprecation warnings 2022-12-25 13:56:42 +01:00
49390c372d Use triple-equals in a few more places 2022-12-25 13:50:03 +01:00
2174e1d08b PhotoPage: show software used to edit photo 2022-12-25 13:44:19 +01:00
3de87809bb GenericTable: prevent passing NULL to strtotime 2022-07-14 16:45:32 +02:00
c763967463 Prevent current page from being 0 if no items are present 2022-07-14 16:45:17 +02:00
b3808144ca Address deprecation notices for certain function signatures 2022-07-08 23:52:03 +02:00
d8858c78bb Thumbnails: crop from original size if 2x is unavailable 2022-07-07 14:54:00 +02:00
c0d69f7205 Do not delete thumbnail queue when replacing an asset
Thumbnails are normally created on demand, e.g. when processing the format codes in a post's body text.
Normally, the temporary URL is only used once to generate thumbnails ad-hoc. However, when cache is
enabled, a reference to the asset may be used in a cached version of a formatted body text, skipping
the normal thumbnail generation routine.

When an asset is replaced, currently, all thumbnails are removed and references to them are removed
from the database. In case the asset is still referenced in a cached formatted body text, this could lead
to an error when requesting the thumbnail, as the thumbnail request is no longer present in the system.

As we do not know what posts use particular assets at this point in the code, it is best to work around this
issue by unsetting the thumbnail filenames rather than deleting the entries outright. This effectively
generates them again on the next request.

In the future, we should aim to keep track of what posts make use of assets, so cache may be invalidated
in a more targeted way.
2022-07-07 14:22:22 +02:00
b5edf09a69 Don't try to generate double-density thumbs for small images 2022-07-07 14:05:33 +02:00
54fb7ab410 Write new thumbnail filenames to parent Image object as well 2022-07-07 13:55:55 +02:00
086102d007 Thumbnail class: minor refactor of generate method 2022-07-07 13:51:03 +02:00
56b60b74bc Thumbnail class: refactor getUrl method 2022-07-07 13:33:40 +02:00
fc59708914 Split Image::getImageUrls from Image::getInlineImage 2022-07-05 12:01:02 +02:00
1c02cbea93 Rewrite Image::getInlineImage to support double density displays 2022-07-05 11:41:40 +02:00
52420b8715 Add Image::getInlineImage method 2022-06-30 15:22:08 +02:00
b7a37c85f6 Complete date-ordered orderings
Bug as reported by Yorick: When two Assets have the same capture
date, a bug occurs in the interface where the user gets stuck in
a loop when moving to the next image.

This patch uses the primary key as a fallback when ordering the
images by capture date.  This way, the asset ordering is complete
and it should resolve the bug.
2022-11-22 12:00:53 +01:00
0ec0de4414 Replace deprecated strftime calls 2022-05-07 13:25:19 +02:00
f2d8a32e67 EXIF: prefer DateTimeOriginal over DateTimeDigitized 2022-02-16 21:43:55 +01:00
237f4005bd Apply htmlspecialchars to basic values. 2021-02-17 22:44:26 +01:00
4bf4641428 Minor refactor of generateColumnHeaders function 2021-02-17 20:45:58 +01:00
ff808ba18d Refactor processing of raw rows and their cell data. 2021-02-17 20:45:22 +01:00
6c662481bc Remove a few obscure, unused features.
* Removed support for row classification. Use of CSS is preferred.
* Removed support for disabling/enabling columns via a property. Unset as needed.
* Removed support for passing and inheriting a cell width by column. Header width suffices.
2021-02-17 20:45:22 +01:00
af73f00701 Restrict access to GenericTable, Pagination class members. 2021-02-17 20:45:21 +01:00
681af07985 Pass builder function for custom pagination link generation.
This makes pagination for GenericTables work properly again.
2021-02-17 20:43:30 +01:00
cba42a9129 Refactor GenericTable to use PageIndex rather than inherit from it
This has on my todo list for years... I'm glad to finally get around to it.
2021-02-17 20:43:30 +01:00
96937b6952 Use null-coalescing operator where appropriate 2021-02-17 20:43:29 +01:00
5c55e45c3c Use splat operator instead of call_user_func_array 2021-02-17 20:43:29 +01:00
555c61937b Minor Thumbnail refactors from upstream Kabuki. 2020-12-30 20:09:10 +01:00
d069ddca18 Merge pull request 'Make crop editor usable' (#22) from crop-editor into master
Reviewed-on: Public/pics#22
2020-12-30 20:06:15 +01:00
71b71f8a03 Merge pull request 'Set JPEG compression to 80 for thumbnails' (#21) from thumbnail-quality into master
Reviewed-on: Public/pics#21
2020-12-30 20:05:46 +01:00
e7490e40dd Clean up and force a rebuild of thumbnails when customising a crop region. 2020-12-30 13:05:23 +01:00
b793e05980 Re-assign thumbnail suffix for CROP_MODE_BOUNDARY.
This crop mode was intended to get the '_ce' suffix,
but was inadvertently getting '_c' instead.
2020-12-30 13:05:22 +01:00
8d02662eb3 Set JPEG compression to 80 for thumbnails.
This saves both disk space and bandwidth by compromising a little on quality.
Only thumbnails are affected; full-size images are still saved in full detail.
2020-03-22 22:56:53 +01:00
a208c0482f Invoke Dispatcher::kickGuest from Session for invalid sessions.
Previously, a NotAllowedException would be thrown if an invalid session
was encountered. However, these exceptions were not caught, and hence
would yield a fatal uncaught exception error.

At this point in Kabuki, the ErrorHandler class has not been registered yet
for error handling purposes. This error is therefore not visible if the PHP
ini directive 'display_errors' is set to 'Off'. As this is the default
production value, the script would fail with a blank page in such cases.
2020-03-11 22:38:15 +01:00
f193b614b7 Port basic asset management page from Kabuki. 2020-02-25 13:31:12 +01:00
c48ba786c1 Refactor leftover old-style arrays into new-style arrays. 2019-09-29 14:47:56 +02:00
d7b68995e8 Fix recounting not working on non-album tags. 2019-09-29 14:20:59 +02:00
5df7ea8371 Remove unused 'best color' algorithm.
This code is used to efficiently determine the most saturated colour in an image,
Kabuki uses this as the highlight colour on a page, but this styling has always
been disabled in HashRU Pics. Hence, we can safely remove the code, freeing up
some CPU cycles in the process. ;-)
2019-09-29 14:18:59 +02:00
05c48be785 Link tags after adding them through autosuggest. 2019-03-09 13:22:32 +01:00
20db3561cf Adds the ability to export an album using streaming tar. 2019-03-08 19:52:01 +00:00
768f5ee529 Fixes an error related to using continue within a loop.
https://wiki.php.net/rfc/continue_on_switch_deprecation
2019-03-08 19:52:01 +00:00
16ec547064 Changes the ConfirmDelete page and updates database code.
The ConfirmDelete page now uses parts of the photopage. The
Confirmation dialog is its own template which is based on Alert.

The database now updates the album thumb to the most recent
addition to the album, when the album thumb asset is being deleted.
When there are no pictures left in the album 0 will be set.
2018-07-13 23:00:36 +02:00
e40c05c1f8 Adds a Confirm Delete page and actually delete the assets. 2018-07-07 19:53:46 +00:00
bcbb74a680 Allow setting URL slug through admin panel. 2018-02-22 20:07:06 +01:00
8b73420936 Makes the Reply-To header e-mail address configurable.
also uses the SITE_NAME constant as the sender name.
2018-02-03 20:58:00 +01:00
ee304dd7b9 When generating thumbnails, infer width properly when null is passed. 2018-02-03 20:14:40 +01:00
1def1484cb Backport asynchronous thumbnail generation from Kabuki. 2017-12-20 14:51:23 +01:00
096cea078c Support 'quick create subalbums' style, too. 2017-11-09 17:00:36 +01:00
2a25434862 Implement basic tag management. 2017-11-09 17:00:36 +01:00
943297900c Implement basic album management. 2017-11-09 17:00:36 +01:00
95e289d82d Introduce an overview of all albums for admins. 2017-11-09 17:00:36 +01:00
1a15e347f2 Merges from upstream Kabuki. 2017-11-09 17:00:36 +01:00
9dfb2649e5 Revert "Properly fix prev/next in set."
This reverts commit 94427a4c5c03b1368356279781bddf6c82527831.
2017-11-09 17:00:35 +01:00
9b2cc5caae Properly fix prev/next in set. 2017-11-09 17:00:35 +01:00
f4bcb1e584 Typo: empty string, not 0. 2017-11-09 17:00:35 +01:00
0a55730696 Allow all users to create and link people tags. 2017-11-09 17:00:35 +01:00
6c0f6b06e6 Fix IPv4-only remnant. 2017-11-09 17:00:35 +01:00
b66088319b Reply from @aaronweb.net, not @pics.hashru.nl, for now. 2017-11-09 17:00:35 +01:00
09a662b4eb Add uploader to photo view. 2017-11-09 17:00:35 +01:00
aa04c5ee04 Reduce JPEG quality for thumbnails. 2017-11-09 17:00:35 +01:00
c11c5c2677 Implement navigation for photo pages. 2017-11-09 17:00:35 +01:00
e7e3a4368a Set tag cover photo automatically on upload. 2017-11-09 17:00:35 +01:00
790d5fc5d0 Uploading of new photos now fully working. 2017-11-09 17:00:35 +01:00
f86a3ce358 Add single photo pages, navigateable by arrow keys and touch gestures. 2017-11-09 17:00:34 +01:00
0d1fce41c8 Glob portraits for small 4x4 tiles as well. 2017-11-09 17:00:34 +01:00
2c4277790b Import photo ownership. 2017-11-09 17:00:34 +01:00
7240201a3e PhotoMosaic: allow sets of three portraits. 2017-11-09 17:00:34 +01:00
df7655e00b Allow jumping to random pages through pagination fillers. 2017-11-09 17:00:34 +01:00
29030eade6 Tackle session errors through UserFacingException. 2017-11-09 17:00:34 +01:00
e1df4678ac More helpful error messages for database errors. 2017-11-09 17:00:34 +01:00
c4f65aaa0a Dispatcher: check actions before tags. 2017-11-09 17:00:34 +01:00
7487068171 Allow resetting password through email.
This also adopts the use of an Alert template for error and success messages.
2017-11-09 17:00:34 +01:00
bfcbe5aa2e Implement pagination for people page. 2017-11-09 17:00:34 +01:00
ab0e4efbcb Initial commit.
This is to be the new HashRU website based on the Aaronweb.net/Kabuki CMS.
2017-11-09 17:00:22 +01:00