DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:struct:filters

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
plugin:struct:filters [2020-04-11 21:02]
RamonMR
plugin:struct:filters [2020-04-11 21:37] (current)
cgalo old revision restored (2020-03-31 20:27)
Line 1: Line 1:
-putos+<= [[plugin:struct|Struct Plugin]] 
 + 
 +====== Struct Plugin: Filters ====== 
 + 
 +Filters are used to filter [[plugin:struct:aggregation|aggregations]]. 
 + 
 +===== Fixed Filters ===== 
 + 
 +Fixed filters are added through the ''filter'' and ''filteror'' options. They expect a column name, a comparator and a value to compare with. 
 + 
 +Example: 
 + 
 +<code> 
 +---- struct table ---- 
 +schema   : projects A 
 +cols     : %pageid%, product, budget, team 
 +filter   : product = Fantastico Basic 
 +filteror : product = Fantastico Professional 
 +---- 
 +</code> 
 + 
 +Column names can of course reference the full column name (eg. ''projects.product'') or use defined aliases (eg. ''A.product''). 
 + 
 +===== Comparators ===== 
 + 
 +For filtering, multiple comparators are possible: 
 + 
 +^ Comparator        ^ Meaning                                                                                                                                                                                                                                          ^ 
 +| ''=''             | Exact match                                                                                                                                                                                                                                      | 
 +| ''!='' or ''<>''  | Does not exactly match                                                                                                                                                                                                                           | 
 +| ''<''             | Less than                                                                                                                                                                                                                                        | 
 +| ''%%<=%%''        | Less or equal than                                                                                                                                                                                                                               | 
 +| ''>''             | Greater than                                                                                                                                                                                                                                     | 
 +| ''%%>=%%''        | Greater or equal than                                                                                                                                                                                                                            | 
 +| ''~''             | Wildcard match. Use a ''*'' as wildcard. Like ''Apple*'' to match ''Apple Pie'' and ''Apple Computer''; e.g. ''dessert~ *Pie''. Case insensitive.                                                                                                | 
 +| ''*~''            | Wildcard match. Look for matches containing search term; e.g. ''dessert*~ Pi'' match ''Apple Pie''                                                                                                                                               | 
 +| ''!~''            | Negative Wildcard match. Select everything that does not match the expression.                                                                                                                                                                   | 
 +| ''=*''            | Regular expression search; example: ''keyword =* Hydraulic%%|%%Spindle'' filters out pages where the keyword is "Hydraulics" or "Spindle". \\ \\ To match an empty value use ''=* %%^%%(?![\s\S])''                                              | 
 +| ''IN''            | Match any element in a list. List is limited by round brackets and contains elements separated by comas. Each element can be a string (limited by single or double quotes) or a number.  Example syntax: ''somefield IN ("a", 'b', 123, 12.1)'' 
 + 
 +===== Value Placeholders ===== 
 + 
 +When defining fixed filters it is sometimes useful to compare against semi-dynamic values. This is where value placeholders come in handy. You simply use the placeholder instead of a value when creating the filter. 
 + 
 +The following example prints all projects the current user is a team member of: 
 + 
 +<code> 
 +---- struct table ---- 
 +schema   : projects A 
 +cols     : %pageid%, product, budget, team 
 +filter   : team = $USER$ 
 +---- 
 +</code> 
 + 
 +^ Placeholder                        ^ Description                                                                    ^ 
 +| ''$USER$''                         | Currently logged in user                                                       | 
 +| ''$USER.name$''                    | Real name of currently logged in user                                          | 
 +| ''$USER.email$''                   | Email of currently logged in user                                              | 
 +| ''$USER.grps$''                    | Groups of currently logged in user. Useful with [[plugin::structgroup]] plugin.| 
 +| ''$TODAY$''                        | Today's date in Y-m-d format                                                   | 
 +| ''$ID$''                           | The page's full page ID (of the page the aggregation is defined on)            | 
 +| ''$PAGE$''                         | The page's page name without a namespace                                       | 
 +| ''$NS$''                           | The page's namespace                                                           | 
 +| ''$STRUCT.//<schema>.<field>//$''  | The struct data saved for the current page in given field.                     | 
 + 
 +===== Dynamic Filters ===== 
 + 
 +Aggregations can be "live" filtered by either adding the ''dynfilters'' option or passing the right URL parameters. 
 + 
 +The following example adds filter input fields for all selected columns. 
 + 
 +<code> 
 +---- struct table ---- 
 +schema     : projects A 
 +cols       : %pageid%, product, budget, team 
 +dynfilters : 1 
 +---- 
 +</code> 
 + 
 +Filters created through this method always use the ''*~'' comparator, eg. look for the search term anywhere in the column's data. 
 + 
 +Dynamic filters can also be added through the ''flt'' parameter. The parameter is an array type, with the column name and comparator combined in the key and the comparison value in the value part. 
 + 
 +Example: ''?flt[projects.budget>]=10000''
  
plugin/struct/filters.txt · Last modified: 2020-04-11 21:37 by cgalo