diff --git a/src/app/services/criteria/tags.js b/src/app/services/resource/tags.js similarity index 65% rename from src/app/services/criteria/tags.js rename to src/app/services/resource/tags.js index d0d5492e..893da80e 100644 --- a/src/app/services/criteria/tags.js +++ b/src/app/services/resource/tags.js @@ -18,22 +18,26 @@ /** * This criteria resolver may be injected by individual resources that accept a * Tags search parameter. + * + * @see ResourceFactory */ angular.module('sb.services').factory('Tags', - function (Criteria, $q) { + function (ResourceFactory) { 'use strict'; - /** - * Return a Tags search parameter constructed from the passed search - * string. - */ + var resource = ResourceFactory.build( + '/tags/:id', + '/tags/search', + {id: '@id'} + ); - return { - criteriaResolver: function (searchString) { - var deferred = $q.defer(); - deferred.resolve([Criteria.create('Tags', searchString)]); + ResourceFactory.applySearch( + 'Tags', + resource, + 'name', + {}, + true // Use the name field for browse criteria, instead of the ID + ); - return deferred.promise; - } - }; + return resource; }); diff --git a/src/app/services/service/resource_factory.js b/src/app/services/service/resource_factory.js index bb34c22a..b20238e2 100644 --- a/src/app/services/service/resource_factory.js +++ b/src/app/services/service/resource_factory.js @@ -113,7 +113,7 @@ angular.module('sb.services') * @param searchParameters The search parameters to apply. */ applySearch: function (resourceName, resource, nameField, - searchParameters) { + searchParameters, useNameField) { // List of criteria resolvers which we're building. var criteriaResolvers = []; @@ -162,7 +162,13 @@ angular.module('sb.services') // Transform the results to criteria tags. var criteriaResults = []; result.forEach(function (item) { - if (item.hasOwnProperty('id')) { + if (useNameField) { + criteriaResults.push( + Criteria.create(resourceName, + item[nameField], + item[nameField]) + ); + } else if (item.hasOwnProperty('id')) { criteriaResults.push( Criteria.create(resourceName, item.id,