Sorter Extension

This extension provides sorting, it also is responsible for passing the “sorter” settings to the view layer.

Settings

Sorters setting should be placed under the sorters tree node.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 datagrids:
     demo:
         source:
             type: orm
             query:
                 select
                     - o.label
                     - 2 as someAlias
                     - test.some_id as someField
                 from:
                     - { table: SomeBundle:SomeEntity, alias: o }
                 join:
                     left:
                         joinNameOne:
                             join: o.someEntity
                             alias: someEntity
                         joinNameTwo:
                             join: o.testRel
                             alias: test
                     inner:
                         innerJoinName:
                             join: o.abcTestRel
                             alias: abc

         columns:
             label:
                 type: field

             someColumn:
                 type: fixed
                 value_key: someAlias

         ....

         sorters:
             toolbar_sorting: true #optional, shows additional sorting control in toolbar
             columns:
                 label:  # column name for view layer
                     data_name: o.label   # property in result set (column name or alias), if main entity has alias
                                          # like in this example it will be added automatically
                     type: string #optional, affects labels in toolbar sorting
                 someColumn:
                     data_name: someAlias
                     apply_callback: callable # if you want to apply some operations instead of just adding ORDER BY
             default:
                 label: DESC # sorters enabled by default, key is a column name

             multiple_sorting: true|false # is multisorting mode enabled ? False by default

             disable_default_sorting: true|false # When set to true, no default sorting will be applied

             disable_not_selected_option: true|false(default) # If enabled (true) it will hide `not_selected`
                 (Please select) option from sorting dropdown.
                 Consider enabling it will work only if there is `default` sorting option available and
                 `disable_default_sorting` is not true.
                 In other words `not_selected` will always appear in select dropdown (even if
                 disable_not_selected_option set to true) in such cases:
                 1. If a customer already selected 'not_selected' option earlier.
                 2. If the 'default' option is empty or not defined
                 3. If the 'disable_default_sorting' option is set to true

Note

  • Customization can be done using the apply_callback options.
  • Column name should be equal to the name of the corresponding column.