PluginProbe
Independent Analytics – WordPress Analytics Plugin / 2.14.1
Independent Analytics – WordPress Analytics Plugin v2.14.1
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 All 120 releases
independent-analytics / javascript-source / controllers / sort_controller.js
sort_controller.js
44 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import {Controller} from "@hotwired/stimulus"
2
3 export default class extends Controller {
4 static targets = ['sortButton']
5 static values = {column: String}
6 previousColumn = null
7 sortDirection = null
8
9 connect() {
10 this.sortButtonTargets.forEach((sortButton) => {
11 const sorted = !!sortButton.dataset.sortDirection
12
13 if (sorted) {
14 this.previousColumn = sortButton.dataset.sortColumn
15 this.sortDirection = sortButton.dataset.defaultSortDirection
16 }
17 })
18 }
19
20 sortColumnColumn(e) {
21 const column = e.currentTarget.dataset.sortColumn
22 const defaultDirection = e.currentTarget.dataset.defaultSortDirection
23
24 if (this.previousColumn === column) {
25 this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc'
26 } else {
27 this.sortDirection = defaultDirection
28 }
29 this.previousColumn = column
30
31 this.sortButtonTargets.forEach((sortButton) => {
32 sortButton.dataset.sortDirection = sortButton.dataset.sortColumn === column ? this.sortDirection : ''
33 })
34
35 document.dispatchEvent(
36 new CustomEvent('iawp:changeSort', {
37 detail: {
38 sortColumn: column,
39 sortDirection: this.sortDirection
40 }
41 })
42 )
43 }
44 }