From 45af0d631aefa7af2541a80b30a73970fb9b2ec8 Mon Sep 17 00:00:00 2001 From: Andrew Nowak Date: Fri, 1 Mar 2024 19:09:21 +0000 Subject: [PATCH 01/10] hold alt to exclude, shift to include bylines --- .../gr-image-metadata/gr-image-metadata.html | 4 ++- .../gr-image-metadata/gr-image-metadata.js | 34 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.html b/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.html index 11fb29cdbe..9ae8d0d31a 100644 --- a/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.html +++ b/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.html @@ -322,7 +322,9 @@ {{ctrl.metadata.byline}} + ng-click="ctrl.searchWithModifiers($event, 'by', ctrl.metadata.byline)" + aria-label="Search images by {{ctrl.metadata.byline}} byline" + title="Hold alt to exclude or hold shift to include {{ctrl.metadata.byline}}">{{ctrl.metadata.byline}} Unknown (click ✎ to add) diff --git a/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.js b/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.js index 6cf4f31079..a9fe0a413b 100644 --- a/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.js +++ b/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.js @@ -14,6 +14,8 @@ import '../../services/image-list'; import '../../services/label'; import { List } from 'immutable'; +import { fieldFilter} from '../../search/query-filter'; + export const module = angular.module('gr.imageMetadata', [ 'gr.image.service', 'kahuna.edits.service', @@ -24,6 +26,8 @@ export const module = angular.module('gr.imageMetadata', [ module.controller('grImageMetadataCtrl', [ '$rootScope', '$scope', + '$state', + '$stateParams', '$window', 'editsService', 'mediaApi', @@ -38,6 +42,8 @@ module.controller('grImageMetadataCtrl', [ function ($rootScope, $scope, + $state, + $stateParams, $window, editsService, mediaApi, @@ -508,6 +514,34 @@ module.controller('grImageMetadataCtrl', [ return totalAdditionalMetadataCount == 0; }; + + function updateQueryWithModifiers(field, byline, alt, shift, prevQuery) { + if (alt && prevQuery) { + return `${prevQuery} -${fieldFilter(field, byline)}`; + } + if (alt) { + return `-${fieldFilter(field, byline)}`; + } + if (shift && prevQuery) { + return `${prevQuery} ${fieldFilter(field, byline)}`; + } + return fieldFilter(field, byline); + } + + + ctrl.searchWithModifiers = ($event, fieldName, fieldValue) => { + const alt = event.getModifierState('Alt'); + const shift = event.getModifierState('Shift'); + if (alt || shift) { + $event.preventDefault(); + const nonFree = ctrl.srefNonfree(); + + return $state.go('search.results', { + query: updateQueryWithModifiers(fieldName, fieldValue, alt, shift, $stateParams.query), + nonFree: nonFree + }); + } + }; }; } ]); From afbb9838f1e4d25cac3b8d58d70321b2d4e72ed8 Mon Sep 17 00:00:00 2001 From: Mateusz Date: Sat, 2 Mar 2024 01:52:35 +0000 Subject: [PATCH 02/10] That's what Andrew meant - a variable --- .../components/gr-image-metadata/gr-image-metadata.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.js b/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.js index a9fe0a413b..b6a3e182b0 100644 --- a/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.js +++ b/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.js @@ -515,17 +515,17 @@ module.controller('grImageMetadataCtrl', [ return totalAdditionalMetadataCount == 0; }; - function updateQueryWithModifiers(field, byline, alt, shift, prevQuery) { + function updateQueryWithModifiers(field, fieldValue, alt, shift, prevQuery) { if (alt && prevQuery) { - return `${prevQuery} -${fieldFilter(field, byline)}`; + return `${prevQuery} -${fieldFilter(field, fieldValue)}`; } if (alt) { - return `-${fieldFilter(field, byline)}`; + return `-${fieldFilter(field, fieldValue)}`; } if (shift && prevQuery) { - return `${prevQuery} ${fieldFilter(field, byline)}`; + return `${prevQuery} ${fieldFilter(field, fieldValue)}`; } - return fieldFilter(field, byline); + return fieldFilter(field, fieldValue); } From 799a821e52551f55499749d0b07bed73cd8f5c7e Mon Sep 17 00:00:00 2001 From: Mateusz Date: Sat, 2 Mar 2024 02:13:47 +0000 Subject: [PATCH 03/10] Tooltips would be too repetitive and annoying. And too long. --- .../js/components/gr-image-metadata/gr-image-metadata.html | 1 - 1 file changed, 1 deletion(-) diff --git a/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.html b/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.html index 9ae8d0d31a..e8540ff698 100644 --- a/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.html +++ b/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.html @@ -324,7 +324,6 @@ {{ctrl.metadata.byline}} Unknown (click ✎ to add) From 24cb6e182284f9f62e5e063009803a221e299edb Mon Sep 17 00:00:00 2001 From: Mateusz Date: Sat, 2 Mar 2024 02:44:12 +0000 Subject: [PATCH 04/10] Add to simple fields... ...and fix byline I broke in previous commit, yeah, I dont know how to pretend I haven't --- .../components/gr-image-metadata/gr-image-metadata.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.html b/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.html index e8540ff698..8320721627 100644 --- a/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.html +++ b/kahuna/public/js/components/gr-image-metadata/gr-image-metadata.html @@ -104,6 +104,7 @@
{{ctrl.metadata.title}}
@@ -112,6 +113,7 @@
{{ctrl.metadata.title}}
@@ -323,7 +325,7 @@ {{ctrl.metadata.byline}} Unknown (click ✎ to add) @@ -371,6 +373,7 @@