Convenience filters

  
Convenience Filters are another way of filtering data in the Object Grid. They are the simplest type of filters to use, as they are applied simply by selecting the appropriate Object grid tab and double-clicking on an item in the C&T tree menu. However, not every variety of object can be filtered by any other variety of object; it depends on the inherent relationships between the two varieties of objects. In other words, cross-super category filters are defined only for certain pairs super categories.
 
For example, Equipment can be filtered by user because each equipment object has a list of associated users. However, Vendors cannot be filtered by Area because Vendors are not associated with any particular Area.
 
Note: If you attempt to filter using an incompatible relationship for the current variety of object, a warning message will appear in the top-right corner of the screen and no filter will be added.
 
There are two different cases of cross-super category filters:
 
Direct References - a direct Filter reference is where the filter object selected in the Category and Type tree is directly assigned to an object in the Grid being filtered, for example:
  • Selecting an Equipment Type entry in the Category & type tree, to list all Equipment Instances in the Equipment Grid associated with the selected Equipment Type.
  • Selecting a User in the User Tree to list all Equipment assigned to that User.
     
Indirect References - an indirect Filter Reference is one that is indirectly assigned to an object but is assigned, by its association to a reference that is directly assigned to an object.
 
The following matrix shows what Category and Type tree entries can be used to apply a quick filter to the associated object grid tab. 
Note: The following matrix relationships are subject to change as the product is being developed and new quick filter requirements are implemented.
 
Convenience Filters created from C&T tree are numerous and diverse, which dictates the limitation of OR logic only to the filters of identical Supercategory. For example, OR will work if you try to filter by several Equipment Types, or Equipment Type Categories in any combination. But, if you add some Area/Area Category filters, OR logic will apply only between filters of that Supercategory. So, finally, the following filter will be applied:
(Equipment Type A OR Equipment Type B OR Equipment Type C) AND (Area D OR Area E)
 

Saved Convenience Filters

User Filters that were created from Convenience Filters, and haven’t been modified yet. They inherit the Filter Group value from the original Convenience Filter. This allows such filters to act exactly like Convenience filters of the same group, and be compatible with them and between themselves for the purpose of OR logic.
 

User Created Filters

Filters created by User directly, or by modifying Saved Convenience Filter, these should have unique filterGroup value, based on Filter’s ID. (I suggest “userCreatedFilter<id>” pattern). This way they won’t participate in any OR logic, which is what we want, since we can’t predict their behavior. Once Saved Convenience Filter is modified, it’s filterGroup should immediately change to follow the rule for User Created Filters, and the name should change from “<Filter Name> (Saved)” to “<Filter Name> (Edited)”, and stay that way. This is a one-way process, and User Created Filters can’t become Saved Convenience Filters.
 
Examples:
  • Selecting an Equipment Category in the Category & type tree; Equipment is associated with Category by its assigned Type and it is the Type that is related to the Category.
     
  • Selecting a User Category e.g. All Contractors, to show all Equipment assigned to all Users within the All Contractors Category, again it is the user assigned to the Equipment, so the Equipment is indirectly assigned to the Category, within which the user is defined.
 
  • Another use-case is retrieving a list of Equipment Type objects used within its Area. This is achieved by double click on the Area under the C&T tree, while the Equipment Type tab is selected in Object Grid.