diff --git a/src/public/assets/scripts/transects.js b/src/public/assets/scripts/transects.js
index ea13598..43088ce 100644
--- a/src/public/assets/scripts/transects.js
+++ b/src/public/assets/scripts/transects.js
@@ -1 +1 @@
-angular.module("dias.transects").controller("AnnotationsFilterController",["AnnotationImage","filter",function(t,e){"use strict";e.add({name:"annotations",template:"annotationsFilterRule.html",resource:t,typeahead:null,transformData:function(){return null}})}]),angular.module("dias.transects").controller("AnnotationsLabelFilterController",["AnnotationLabelImage","filter",function(t,e){"use strict";e.add({name:"annotation with label",template:"annotationWithLabelFilterRule.html",resource:t,typeahead:"annotationLabelFilterTypeahead.html",transformData:function(t){return t.id}})}]),angular.module("dias.transects").controller("AnnotationsUserFilterController",["AnnotationUserImage","filter",function(t,e){"use strict";e.add({name:"annotation label by user",template:"annotationLabelByUserFilterRule.html",resource:t,typeahead:"annotationUserFilterTypeahead.html",transformData:function(t){return t.id}})}]),angular.module("dias.transects").directive("transectAnnotationLabelChooser",function(){"use strict";return{restrict:"A",scope:{select:"=transectAnnotationLabelChooser",id:"=transectId"},replace:!0,template:'',controller:["$scope","TransectAnnotationLabels",function(t,e){t.find=function(a){return e.find({transect_id:t.id,query:encodeURIComponent(a)}).$promise}}]}}),angular.module("dias.transects").factory("AnnotationImage",["$resource","URL",function(t,e){"use strict";return t(e+"/api/v1/transects/:transect_id/images/filter/annotations")}]),angular.module("dias.transects").factory("AnnotationLabelImage",["$resource","URL",function(t,e){"use strict";return t(e+"/api/v1/transects/:transect_id/images/filter/annotation-label/:data")}]),angular.module("dias.transects").factory("AnnotationUserImage",["$resource","URL",function(t,e){"use strict";return t(e+"/api/v1/transects/:transect_id/images/filter/annotation-user/:data")}]),angular.module("dias.transects").factory("TransectAnnotationLabels",["$resource","URL",function(t,e){"use strict";return t(e+"/api/v1/transects/:transect_id/annotation-labels/find/:query",{},{find:{method:"GET",isArray:!0}})}]);
\ No newline at end of file
+angular.module("dias.transects").controller("AnnotationsFilterController",["AnnotationImage","filter",function(t,e){"use strict";e.add({name:"annotations",helpText:"All images that contain one or more annotations.",helpTextNegate:"All images that contain no annotations.",template:"annotationsFilterRule.html",resource:t,typeahead:null,transformData:function(){return null}})}]),angular.module("dias.transects").controller("AnnotationsLabelFilterController",["AnnotationLabelImage","filter",function(t,e){"use strict";e.add({name:"annotation with label",helpText:"All images that contain one or more annotations with the given label.",helpTextNegate:"All images that contain no annotations with the given label.",template:"annotationWithLabelFilterRule.html",resource:t,typeahead:"annotationLabelFilterTypeahead.html",transformData:function(t){return t.id}})}]),angular.module("dias.transects").controller("AnnotationsUserFilterController",["AnnotationUserImage","filter",function(t,e){"use strict";e.add({name:"annotation label by user",helpText:"All images that contain one or more annotations with a label attached by the given user.",helpTextNegate:"All images that contain no annotations with a label attached by the given user.",template:"annotationLabelByUserFilterRule.html",resource:t,typeahead:"annotationUserFilterTypeahead.html",transformData:function(t){return t.id}})}]),angular.module("dias.transects").directive("transectAnnotationLabelChooser",function(){"use strict";return{restrict:"A",scope:{select:"=transectAnnotationLabelChooser",id:"=transectId"},replace:!0,template:'',controller:["$scope","TransectAnnotationLabels",function(t,e){t.find=function(a){return e.find({transect_id:t.id,query:encodeURIComponent(a)}).$promise}}]}}),angular.module("dias.transects").factory("AnnotationImage",["$resource","URL",function(t,e){"use strict";return t(e+"/api/v1/transects/:transect_id/images/filter/annotations")}]),angular.module("dias.transects").factory("AnnotationLabelImage",["$resource","URL",function(t,e){"use strict";return t(e+"/api/v1/transects/:transect_id/images/filter/annotation-label/:data")}]),angular.module("dias.transects").factory("AnnotationUserImage",["$resource","URL",function(t,e){"use strict";return t(e+"/api/v1/transects/:transect_id/images/filter/annotation-user/:data")}]),angular.module("dias.transects").factory("TransectAnnotationLabels",["$resource","URL",function(t,e){"use strict";return t(e+"/api/v1/transects/:transect_id/annotation-labels/find/:query",{},{find:{method:"GET",isArray:!0}})}]);
\ No newline at end of file
diff --git a/src/resources/assets/js/transects/controllers/AnnotationsFilterController.js b/src/resources/assets/js/transects/controllers/AnnotationsFilterController.js
index b20b0b1..b94d503 100644
--- a/src/resources/assets/js/transects/controllers/AnnotationsFilterController.js
+++ b/src/resources/assets/js/transects/controllers/AnnotationsFilterController.js
@@ -10,6 +10,8 @@ angular.module('dias.transects').controller('AnnotationsFilterController', funct
filter.add({
name: 'annotations',
+ helpText: 'All images that contain one or more annotations.',
+ helpTextNegate: 'All images that contain no annotations.',
template: 'annotationsFilterRule.html',
resource: AnnotationImage,
typeahead: null,
diff --git a/src/resources/assets/js/transects/controllers/AnnotationsLabelFilterController.js b/src/resources/assets/js/transects/controllers/AnnotationsLabelFilterController.js
index 0b9baf7..3933cc4 100644
--- a/src/resources/assets/js/transects/controllers/AnnotationsLabelFilterController.js
+++ b/src/resources/assets/js/transects/controllers/AnnotationsLabelFilterController.js
@@ -10,6 +10,8 @@ angular.module('dias.transects').controller('AnnotationsLabelFilterController',
filter.add({
name: 'annotation with label',
+ helpText: 'All images that contain one or more annotations with the given label.',
+ helpTextNegate: 'All images that contain no annotations with the given label.',
template: 'annotationWithLabelFilterRule.html',
resource: AnnotationLabelImage,
typeahead: 'annotationLabelFilterTypeahead.html',
diff --git a/src/resources/assets/js/transects/controllers/AnnotationsUserFilterController.js b/src/resources/assets/js/transects/controllers/AnnotationsUserFilterController.js
index ed18eb6..095b93d 100644
--- a/src/resources/assets/js/transects/controllers/AnnotationsUserFilterController.js
+++ b/src/resources/assets/js/transects/controllers/AnnotationsUserFilterController.js
@@ -10,6 +10,8 @@ angular.module('dias.transects').controller('AnnotationsUserFilterController', f
filter.add({
name: 'annotation label by user',
+ helpText: 'All images that contain one or more annotations with a label attached by the given user.',
+ helpTextNegate: 'All images that contain no annotations with a label attached by the given user.',
template: 'annotationLabelByUserFilterRule.html',
resource: AnnotationUserImage,
typeahead: 'annotationUserFilterTypeahead.html',