@@ -12,6 +12,8 @@ import { editOptions, overwrite } from '../../util/constants/editOptions';
12
12
import '../../services/image-accessor' ;
13
13
import '../../services/image-list' ;
14
14
import '../../services/label' ;
15
+ import '../../search/query-filter' ;
16
+
15
17
import { List } from 'immutable' ;
16
18
17
19
export const module = angular . module ( 'gr.imageMetadata' , [
@@ -34,8 +36,7 @@ module.controller('grImageMetadataCtrl', [
34
36
'inject$' ,
35
37
'labelService' ,
36
38
'storage' ,
37
-
38
-
39
+ 'searchWithModifiers' ,
39
40
function ( $rootScope ,
40
41
$scope ,
41
42
$window ,
@@ -47,7 +48,8 @@ module.controller('grImageMetadataCtrl', [
47
48
imageAccessor ,
48
49
inject$ ,
49
50
labelService ,
50
- storage ) {
51
+ storage ,
52
+ searchWithModifiers ) {
51
53
52
54
let ctrl = this ;
53
55
@@ -58,14 +60,14 @@ module.controller('grImageMetadataCtrl', [
58
60
ctrl . metadataUpdatedByTemplate = [ ] ;
59
61
60
62
ctrl . $onInit = ( ) => {
61
- $scope . $watchCollection ( 'ctrl.selectedImages' , function ( ) {
63
+ $scope . $watchCollection ( 'ctrl.selectedImages' , function ( ) {
62
64
ctrl . singleImage = singleImage ( ) ;
63
65
ctrl . selectedLabels = selectedLabels ( ) ;
64
66
ctrl . usageRights = selectedUsageRights ( ) ;
65
67
inject$ ( $scope , Rx . Observable . fromPromise ( selectedUsageCategory ( ctrl . usageRights ) ) , ctrl , 'usageCategory' ) ;
66
68
ctrl . rawMetadata = rawMetadata ( ) ;
67
69
ctrl . metadata = displayMetadata ( ) ;
68
- ctrl . metadata . dateTaken = ctrl . displayDateTakenMetadata ( ) ;
70
+ ctrl . metadata . dateTaken = ctrl . displayDateTakenMetadata ( ) ;
69
71
ctrl . newPeopleInImage = "" ;
70
72
ctrl . newKeywords = "" ;
71
73
ctrl . extraInfo = extraInfo ( ) ;
@@ -76,26 +78,28 @@ module.controller('grImageMetadataCtrl', [
76
78
} ) ;
77
79
78
80
const freeUpdateListener = $rootScope . $on ( 'images-updated' ,
79
- ( e , updatedImages ) => updateHandler ( updatedImages ) ) ;
81
+ ( e , updatedImages ) => updateHandler ( updatedImages ) ) ;
80
82
81
83
const updateHandler = ( updatedImages ) => {
82
84
ctrl . selectedImages = new List ( updatedImages ) ;
83
85
} ;
84
86
85
87
ctrl . hasMultipleValues = ( val ) => Array . isArray ( val ) && val . length > 1 ;
86
88
87
- ctrl . displayDateTakenMetadata = function ( ) {
89
+ ctrl . displayDateTakenMetadata = function ( ) {
88
90
let dateTaken = ctrl . metadata . dateTaken ? new Date ( ctrl . metadata . dateTaken ) : undefined ;
89
- if ( dateTaken ) { dateTaken . setSeconds ( 0 , 0 ) ; }
91
+ if ( dateTaken ) {
92
+ dateTaken . setSeconds ( 0 , 0 ) ;
93
+ }
90
94
return dateTaken ;
91
95
} ;
92
96
93
- ctrl . credits = function ( searchText ) {
97
+ ctrl . credits = function ( searchText ) {
94
98
return ctrl . metadataSearch ( 'credit' , searchText ) ;
95
99
} ;
96
100
97
101
ctrl . metadataSearch = ( field , q ) => {
98
- return mediaApi . metadataSearch ( field , { q } ) . then ( resource => {
102
+ return mediaApi . metadataSearch ( field , { q } ) . then ( resource => {
99
103
return resource . data . map ( d => d . key ) ;
100
104
} ) ;
101
105
} ;
@@ -104,11 +108,11 @@ module.controller('grImageMetadataCtrl', [
104
108
105
109
ctrl . descriptionOptions = editOptions ;
106
110
107
- ctrl . updateDescriptionField = function ( ) {
111
+ ctrl . updateDescriptionField = function ( ) {
108
112
ctrl . updateMetadataField ( 'description' , ctrl . metadata . description ) ;
109
113
} ;
110
114
111
- ctrl . updateLocationField = function ( data , value ) {
115
+ ctrl . updateLocationField = function ( data , value ) {
112
116
Object . keys ( value ) . forEach ( key => {
113
117
if ( value [ key ] === undefined ) {
114
118
delete value [ key ] ;
@@ -120,7 +124,7 @@ module.controller('grImageMetadataCtrl', [
120
124
ctrl . updateMetadataField = function ( field , value ) {
121
125
var imageArray = Array . from ( ctrl . selectedImages ) ;
122
126
if ( field === 'dateTaken' ) {
123
- value = value . toISOString ( ) ;
127
+ value = value . toISOString ( ) ;
124
128
}
125
129
if ( field === 'peopleInImage' ) {
126
130
ctrl . addPersonToImages ( imageArray , value ) ;
@@ -138,7 +142,7 @@ module.controller('grImageMetadataCtrl', [
138
142
) ;
139
143
} ;
140
144
141
- ctrl . updateDomainMetadataField = function ( name , field , value ) {
145
+ ctrl . updateDomainMetadataField = function ( name , field , value ) {
142
146
return editsService . updateDomainMetadataField ( ctrl . singleImage , name , field , value )
143
147
. then ( ( updatedImage ) => {
144
148
if ( updatedImage ) {
@@ -240,7 +244,7 @@ module.controller('grImageMetadataCtrl', [
240
244
. map ( ( [ key , value ] ) => {
241
245
let fieldAlias = ctrl . fieldAliases . find ( _ => _ . alias === key ) ;
242
246
if ( fieldAlias && fieldAlias . displayInAdditionalMetadata === true ) {
243
- return [ fieldAlias . label , { value, alias : fieldAlias . alias } ] ;
247
+ return [ fieldAlias . label , { value, alias : fieldAlias . alias } ] ;
244
248
}
245
249
} )
246
250
. filter ( _ => _ !== undefined ) ) ;
@@ -250,7 +254,7 @@ module.controller('grImageMetadataCtrl', [
250
254
ctrl . domainMetadata = ctrl . domainMetadataSpecs
251
255
. filter ( domainMetadataSpec => domainMetadataSpec . fields . length > 0 )
252
256
. reduce ( ( acc , domainMetadataSpec ) => {
253
- let domainMetadata = { ...domainMetadataSpec } ;
257
+ let domainMetadata = { ...domainMetadataSpec } ;
254
258
255
259
if ( ctrl . singleImage . data . metadata ) {
256
260
const imageDomainMetadata = ctrl . singleImage . data . metadata . domainMetadata ? ctrl . singleImage . data . metadata . domainMetadata : { } ;
@@ -284,7 +288,7 @@ module.controller('grImageMetadataCtrl', [
284
288
field . selectOptions = field . options
285
289
. filter ( option => option )
286
290
. map ( option => {
287
- return { value : option , text : option } ;
291
+ return { value : option , text : option } ;
288
292
} ) ;
289
293
}
290
294
@@ -332,7 +336,7 @@ module.controller('grImageMetadataCtrl', [
332
336
ctrl . hasLocationInformation = hasLocationInformation ;
333
337
334
338
function singleImage ( ) {
335
- if ( ctrl . selectedImages . size === 1 ) {
339
+ if ( ctrl . selectedImages . size === 1 ) {
336
340
return ctrl . selectedImages . first ( ) ;
337
341
}
338
342
}
@@ -371,18 +375,23 @@ module.controller('grImageMetadataCtrl', [
371
375
function rawMetadata ( ) {
372
376
return selectedMetadata ( ) . map ( ( values ) => {
373
377
switch ( values . size ) {
374
- case 0 : return undefined ;
375
- case 1 : return values . first ( ) ;
376
- default : return Array . from ( values ) ;
378
+ case 0 :
379
+ return undefined ;
380
+ case 1 :
381
+ return values . first ( ) ;
382
+ default :
383
+ return Array . from ( values ) ;
377
384
}
378
385
} ) . toObject ( ) ;
379
386
}
380
387
381
388
function displayMetadata ( ) {
382
389
return selectedMetadata ( ) . map ( ( values ) => {
383
390
switch ( values . size ) {
384
- case 1 : return values . first ( ) ;
385
- default : return undefined ;
391
+ case 1 :
392
+ return values . first ( ) ;
393
+ default :
394
+ return undefined ;
386
395
}
387
396
} ) . toObject ( ) ;
388
397
}
@@ -392,9 +401,12 @@ module.controller('grImageMetadataCtrl', [
392
401
const properties = imageList . getSetOfProperties ( info ) ;
393
402
return properties . map ( ( values ) => {
394
403
switch ( values . size ) {
395
- case 0 : return undefined ;
396
- case 1 : return values . first ( ) ;
397
- default : return Array . from ( values ) ;
404
+ case 0 :
405
+ return undefined ;
406
+ case 1 :
407
+ return values . first ( ) ;
408
+ default :
409
+ return Array . from ( values ) ;
398
410
}
399
411
} ) . toObject ( ) ;
400
412
}
@@ -421,11 +433,11 @@ module.controller('grImageMetadataCtrl', [
421
433
ctrl . removeImageFromCollection = ( collection ) => {
422
434
ctrl . removingCollection = collection ;
423
435
collections . removeImageFromCollection ( collection , ctrl . singleImage )
424
- . then ( ( ) => ctrl . removingCollection = false ) ;
436
+ . then ( ( ) => ctrl . removingCollection = false ) ;
425
437
} ;
426
438
427
- $scope . $on ( '$destroy' , function ( ) {
428
- freeUpdateListener ( ) ;
439
+ $scope . $on ( '$destroy' , function ( ) {
440
+ freeUpdateListener ( ) ;
429
441
} ) ;
430
442
431
443
ctrl . onMetadataTemplateSelected = ( metadata , usageRights , collection , leasesWithConfig ) => {
@@ -498,16 +510,18 @@ module.controller('grImageMetadataCtrl', [
498
510
} ;
499
511
500
512
ctrl . isDomainMetadataEmpty = ( key ) => {
501
- return ctrl . domainMetadata . find ( obj => obj . name === key ) . fields . every ( field => field . value === undefined ) ;
513
+ return ctrl . domainMetadata . find ( obj => obj . name === key ) . fields . every ( field => field . value === undefined ) ;
502
514
} ;
503
515
504
516
ctrl . isAdditionalMetadataEmpty = ( ) => {
505
517
const totalAdditionalMetadataCount = Object . keys ( ctrl . metadata ) . filter ( key => ctrl . isUsefulMetadata ( key ) ) . length +
506
- Object . keys ( ctrl . additionalMetadata ) . length +
507
- Object . keys ( ctrl . identifiers ) . length ;
518
+ Object . keys ( ctrl . additionalMetadata ) . length +
519
+ Object . keys ( ctrl . identifiers ) . length ;
508
520
509
521
return totalAdditionalMetadataCount == 0 ;
510
522
} ;
523
+
524
+ ctrl . searchWithModifiers = searchWithModifiers ;
511
525
} ;
512
526
}
513
527
] ) ;
0 commit comments