Aaron
12352c0d71
FormView: remove unused 'before' and 'after' properties
2025-09-11 19:57:45 +02:00
Aaron
416cb73069
FormView: remove unused $exclude and $include field lists
2025-09-11 19:57:12 +02:00
Aaron
f82e952247
Asset: fix createNew query
2025-08-21 21:59:22 +02:00
Aaron
26d8063c45
Asset/Thumbnail: replace 'NULL' placeholder strings with actual null values
2025-05-16 11:57:07 +02:00
Aaron
3dfda45681
GenericTable: better handling of null values for timestamps
2025-05-16 11:54:05 +02:00
Aaron
219260c57f
Member: set empty reset key for new users
2025-05-16 11:53:59 +02:00
Aaron
4b26c677bb
AssetIterator: rewrite to standard Iterator interface
2025-05-13 23:29:43 +02:00
Aaron
9989ba1fa7
CachedPDOIterator: introduce rewindable PDOStatement iterator
2025-05-13 22:51:12 +02:00
Aaron
8dbf1dce7b
Database: start reworking the DBA to work with PDO
2025-05-13 20:51:43 +02:00
Aaron
7faa59562d
Database: address PHP 8.5 mysqli deprecation warning
2025-04-18 19:26:50 +02:00
Aaron
b775cffc0c
EditAlbum: address refactor mistake
2025-02-26 15:44:30 +01:00
Aaron
041b56ff8c
ErrorPage: display debug info in separate box
2025-02-26 15:33:18 +01:00
Aaron
13cbe08219
Merge pull request 'Replace deprecated trigger_error calls with exceptions' ( #52 ) from trigger-error into master
...
Reviewed-on: #52
2025-02-26 15:29:13 +01:00
Aaron
afd9811616
Merge pull request 'Refactor the GenericTables class' ( #51 ) from generic-tables into master
...
Reviewed-on: #51
2025-02-26 15:29:02 +01:00
Aaron
85ed6ba8d3
Replace deprecated trigger_error calls with exceptions
2025-02-13 11:38:45 +01:00
Aaron
00ca931cf3
GenericTable: rework timestamp formatting
2025-01-08 19:11:10 +01:00
Aaron
7c25d628e1
GenericTable: remove unused formatting types
2025-01-08 19:11:10 +01:00
Aaron
9740416cb2
Management controllers: make format functions first-level
2025-01-08 19:11:10 +01:00
Aaron
6ca3ee6d9d
GenericTable: move link generation out of from formatting options
2025-01-08 19:11:10 +01:00
Aaron
77809faada
GenericTable: rename 'parse' option to 'format'
2025-01-08 19:11:10 +01:00
Aaron
cc0ff71ef7
Management controllers: move table queries into models
2025-01-08 19:11:10 +01:00
Aaron
2d2ef38422
MainNavBar: harden Registry access
2024-12-22 15:45:44 +01:00
Aaron
1e26a51d08
ErrorLog: use DELETE FROM instead of TRUNCATE
2024-12-22 15:35:50 +01:00
Aaron
bb8a8bad27
GenericTable: refactor order and pagination initalisation
2024-12-19 15:00:00 +01:00
Aaron
06c95853f5
GenericTable: drop $tableIsSortable property
2024-12-19 12:01:00 +01:00
Aaron
e57289eeb6
GenericTable: drop support for get_count_params, get_data_params
2024-12-19 11:56:00 +01:00
Aaron
adfb5a2198
ResetPassword: add time-out to password resets; prevent repeated mails
2024-11-05 17:19:59 +01:00
Aaron
eb7a40a70d
ResetPassword: introduce requestResetKey and verifyResetKey methods
2024-11-05 17:17:14 +01:00
Aaron
084658820e
Authentication: replace checkExists with Member::fromId
2024-11-05 16:46:53 +01:00
Aaron
8eaeb6c332
Authentication: remove remnants of user agent checks
2024-11-05 16:45:40 +01:00
Aaron
9c86d2c475
Authentication: replace getUserId with Member::fromEmailAddress
2024-11-05 16:44:54 +01:00
Aaron
3de4e9391c
Authentication: reorder methods alphabetically
2024-11-05 16:39:42 +01:00
Aaron
814a1f82f6
ManageAssets: add thumbnails to asset table
2024-08-27 12:00:46 +02:00
Aaron
01954d4a7d
TabularData: split up into logical methods
2024-08-27 11:55:22 +02:00
Aaron
d6f39a3410
Database: patch error handling to account for exceptions thrown by mysqli_query
2024-08-27 11:46:18 +02:00
Aaron
b64f87a49d
PhotoPage: only call printNewTagScript if $allowLinkingNewTags
2024-06-29 10:03:51 +02:00
Aaron
ead4240173
AlbumButtonBox: un-float album_button_box
2024-06-28 20:25:00 +02:00
Aaron
89cc00ffd9
EditAlbum: choose the first non-root album as the default parent
2024-05-08 13:21:13 +02:00
Aaron
45b59636f6
EditAlbum: fix error handling
2024-05-08 13:17:31 +02:00
Aaron
2bfbe67d91
Merge pull request 'Introduce edit menu for admins' ( #49 ) from edit-menu into master
...
Reviewed-on: #49
2024-02-24 13:10:58 +01:00
Aaron
9d4f35a0fd
ViewPhotoAlbum: add ?in param for root tags, too
...
This was probably intended as an optimisation, but people tags are
at root level, and so id_parent == 0.
2024-02-24 13:08:37 +01:00
Aaron
f0d286179a
Fix edge case in color-modes.js
...
For details, see https://github.com/twbs/bootstrap/pull/39224
2024-02-21 15:45:27 +01:00
Aaron
25feb31c1a
EditAsset: some hardening; deduplicate redirect code
2024-01-18 13:40:17 +01:00
Aaron
6ec5994de0
ViewPhotoAlbum: build edit menu in controller
2024-01-18 13:18:22 +01:00
Aaron
24c2e9cdcf
PhotosIndex: allow setting image as the album cover as well
2024-01-17 18:28:24 +01:00
Aaron
0487ad16b9
Asset: remove old setKeyData method
2024-01-17 17:54:18 +01:00
Aaron
c2aae4fb6e
EditAsset: replace Asset::setKeyData with Asset::save equivalent
2024-01-17 17:54:14 +01:00
Aaron
069d56383e
PhotosIndex: replace edit button with edit menu
2024-01-17 17:51:45 +01:00
Aaron
8613054d69
Asset: introduce save method
2024-01-17 17:51:25 +01:00
Aaron
30bc0bb884
ViewPhotoAlbum: don't include empty $by in page links
2024-01-15 13:44:51 +01:00
Aaron
c0dd2cbd49
ViewPhotoAlbum: drop 'Show' from empty filter caption
2024-01-15 13:41:51 +01:00
Aaron
bb81f7e086
Download: remove limits on maximum execution time
2024-01-15 11:46:01 +01:00
Aaron
4b289a5e83
Download: allow limiting by user uploaded as well
2024-01-15 11:40:33 +01:00
Aaron
ec2d702a0d
ViewPhoto: simplify filter verification
2024-01-15 11:33:43 +01:00
Aaron
52472d8b58
ViewPhotoAlbum: add 'label' key to empty filter as well
2024-01-15 11:26:17 +01:00
Aaron
5d990501f6
ViewPhotoAlbum: move $is_person declaration to where it's used
2024-01-15 11:25:04 +01:00
Aaron
1f53689e4b
AlbumButtonBox: add visual cue to indicate a filter is active
2024-01-15 00:55:33 +01:00
Aaron
accf093935
PageIndex: rewrite getLink to be way less messy
2024-01-15 00:51:06 +01:00
Aaron
d8c3e76df6
ViewPhoto: take filter into account for prev/next links
2024-01-15 00:43:02 +01:00
Aaron
f33a7e397c
Asset: combine getUrlFor{Next,Previous}InSet into one private method
2024-01-15 00:19:39 +01:00
Aaron
9c00248a7f
ViewPhotoAlbum: don't populate filter box if there are no album contributors
2024-01-14 22:17:09 +01:00
Aaron
99b867b241
AlbumButtonBox: add way for users to select an album filter
2024-01-14 21:28:45 +01:00
Aaron
6a25ecec23
ViewPhotoAlbum: add method to filter by id_user_uploaded
2024-01-14 21:06:54 +01:00
Aaron
16683d2f1f
Tag: add getContributorList method
2024-01-14 21:06:34 +01:00
Aaron
7cdcf8197c
ViewPhotoAlbum: use Tag::getUrl instead of fumbling with $_GET['tag']
2024-01-14 20:40:58 +01:00
Aaron
25b9528628
ViewPhotoAlbum: simplify tag handling in getAlbumButtons
2024-01-14 20:40:58 +01:00
Aaron
08cdbfe7b6
ViewPhotoAlbum: move some logic into new prepareHeaderBox method
2024-01-14 20:40:58 +01:00
Aaron
44ca9ed1a5
Fix dereferencing $tag when null
2024-01-14 16:15:23 +01:00
Aaron
374fa5cccd
PhotoPage: re-instate meta header styling lost in rebase
2024-01-13 17:35:34 +01:00
Aaron
b48f7dbb9e
ViewPhoto: re-add accidentally omitted units
2024-01-12 10:42:51 +01:00
Aaron
8eb6be02b1
PhotoPage: fade the tag delete buttons a little
2024-01-11 21:58:01 +01:00
Aaron
e671b7da30
PhotoPage: simplify tag html nodes
2024-01-11 21:53:44 +01:00
Aaron
e3d481caa1
PhotoPage: update and refactor tagging script slightly
2024-01-11 20:47:41 +01:00
Aaron
b13701f7c0
PhotoPage: change how tags are displayed
2024-01-11 20:00:29 +01:00
Aaron
d17d98a838
PhotoPage: move user actions inside photo description box
2024-01-11 19:20:46 +01:00
Aaron
e374f7ed59
ViewPhoto: prepare meta data in controller; change layout
2024-01-11 19:13:21 +01:00
Aaron
55c33c024e
ViewPhoto: use class state to store Image object
2024-01-11 18:59:50 +01:00
Aaron
bc08e867f0
PhotoPage: make prev/next photo logic more direct
2024-01-11 18:54:54 +01:00
Aaron
f9ab90e925
EXIF: add special handling for Pentax Model/Make pollution
2024-01-11 18:45:22 +01:00
Aaron
507357ba59
PhotosIndex: adjust thumbnail dimensions to better reflect usage
2023-12-23 16:22:48 +01:00
Aaron
52fad8d1b9
PhotosIndex: fix dualMixed layout showing the same image twice
2023-12-23 13:47:16 +01:00
Aaron
321e2587b5
PhotoMosaic: break out early in case of perfect score
2023-12-20 16:25:58 +01:00
Aaron
37cc627e20
PhotosIndex: add dualMixed layout
...
This combines one landscape with one portrait.
2023-12-20 16:23:19 +01:00
Aaron
553744aeb5
PhotoMosaic: fit batch of photos to best layout instead
2023-12-19 21:57:29 +01:00
Aaron
d2fa547257
PhotoMosaic: keep queue ordered by date captured
2023-12-19 17:16:57 +01:00
Aaron
6150922a1f
ErrorHandler: fix longstanding typo, occur*r*ed
2023-12-14 21:14:09 +01:00
Aaron
4d9219586f
PageIndexWidget: display current page on smartphones, too
2023-12-02 01:38:07 +01:00
Aaron
efb35cfd6a
PhotoMosaic: add sixLandscapes layout, combining side and row
2023-12-02 01:29:11 +01:00
Aaron
d42c3c142c
PhotosIndex: differentiate dual/single layouts by landscape/portrait
2023-12-02 00:50:04 +01:00
Aaron
f66a400100
PhotosIndex: removing unnecessary limit/constant
2023-12-02 00:24:47 +01:00
Aaron
d45b467bb1
PhotoMosaic: rewrite getRow to use availableLayouts
2023-12-02 00:24:43 +01:00
Aaron
8700fc1417
PhotoMosaic: introduce availableLayouts method
2023-12-01 23:41:05 +01:00
Aaron
b98785d7b2
PhotoMosaic: remove unused getRecentPhotos method
2023-12-01 23:39:55 +01:00
Aaron
8e0e642d34
PhotoMosaic: reorder methods to be alphabetically ordered
2023-12-01 22:47:51 +01:00
Aaron
baa928531b
Asset: let slugs consist only of an explicit set of allowed characters
2023-11-20 22:45:48 +01:00
Aaron
f143b2ddcf
PageIndexWidget: show first applicable wildcard link in responsive mode
2023-11-20 22:27:57 +01:00
Aaron
56f21a6721
PageIndexWidget: disable text wrapping
2023-11-20 22:22:55 +01:00
Aaron
230c65478f
PageIndexWidget: restore wildcard functionality
2023-11-20 22:22:21 +01:00
Aaron
65ee07d95b
Session: centralise how session tokens are handled
2023-11-20 20:59:35 +01:00
Aaron
5f778d73b4
Session: remove checks for matching IP address and user agent
...
This was considered good practice in the days before always-on https,
but is considered superfluous today. It even gets in the way of IPv6
privacy extensions, which is the main argument for removing them today.
2023-11-20 20:58:20 +01:00