The search widget implements a highly customizable search functionality which is used in the Cockpit and Tasklist app. A search always consists of one or more search pills.
The search widget persists valid searches in the URL bar, it is therefore not possible to include more than one search widget per page.
$scope.searches = []; $scope.validSearches = []; $scope.translations = { 'inputPlaceholder': 'Search for Anything', 'invalid': 'This search query is not valid', 'deleteSearch': 'Remove search', 'type': 'Type', 'name': 'Property', 'operator': 'Operator', 'value': 'Value' }; $scope.types = [ { 'id': { 'key': 'PredefinedOperators', 'value': 'Predefined Operators' }, 'operators': [ {'key': 'eq', 'value': '='}, {'key': 'lt', 'value': '<'}, {'key': 'like','value': 'like'} ], default: true }, { 'id': { 'key': 'EnforceDate', 'value': 'Enforce Date' }, 'operators': [ {'key': 'eq', 'value': '='} ], allowDates: true, enforceDates: true }, { 'id': { 'key': 'EnforceString', 'value': 'Enforce String' }, 'operators': [ {'key': 'eq', 'value': '='} ], enforceString: true }, { 'id': { 'key': 'variableOperator', 'value': 'Variable Operator' }, allowDates: true, extended: true }, { 'id': { 'key': 'basicQuery', 'value': 'Basic Query' }, basic: true } ]; $scope.operators = { 'undefined': [ {'key': 'eq', 'value': '='}, {'key': 'neq','value': '!='} ], 'string': [ {'key': 'eq', 'value': '='}, {'key': 'like','value': 'like'} ], 'number': [ {'key': 'eq', 'value': '='}, {'key': 'neq','value': '!='}, {'key': 'gt', 'value': '>'}, {'key': 'lt', 'value': '<'} ], 'boolean': [ {'key': 'eq', 'value': '='} ], 'object': [ {'key': 'eq', 'value': '='} ], 'date': [ {'key': 'Before', 'value': 'before'}, {'key': 'After', 'value': 'after'} ] }; <div> <div cam-widget-search cam-widget-search-searches='searches' cam-widget-search-valid-searches='validSearches' cam-widget-search-translations='translations' cam-widget-search-types='types' cam-widget-search-operators='operators' cam-widget-search-id='search1' cam-widget-search-storage-group='"search1"' cam-widget-search-mode='filter' /> </div> <b>All Searches:</b> {{ searches.length }}<br /> <b>Valid Searches:</b> {{ validSearches.length }}
$scope.searches2 = []; $scope.validSearches2 = []; $scope.types2 = [ { 'id': { 'key': 'A', 'value': 'A' }, 'groups': ['A'] }, { 'id': { 'key': 'B', 'value': 'B' }, 'groups': ['B'] }, { 'id': { 'key': 'C', 'value': 'C' }, } ]; <div> <div cam-widget-search cam-widget-search-searches='searches2' cam-widget-search-valid-searches='validSearches2' cam-widget-search-translations='translations' cam-widget-search-types='types2' cam-widget-search-operators='operators' cam-widget-search-id='search2' cam-widget-search-mode='filter' /> </div> <b>All Searches:</b> {{ searches2.length }}<br /> <b>Valid Searches:</b> {{ validSearches2.length }}