PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.14.2
Independent Analytics – WordPress Analytics Plugin v2.14.2
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 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / javascript-source / controllers / overview / checkbox_group.js
independent-analytics / javascript-source / controllers / overview Last commit date
add_module.js 1 year ago checkbox_group.js 1 year ago module.js 1 year ago module_editor.js 1 year ago module_list.js 1 year ago module_picker.js 1 year ago reorder_modules.js 1 year ago
checkbox_group.js
56 lines
1 import {Controller} from "@hotwired/stimulus"
2
3 export default class extends Controller {
4 static targets = ['groupTab', 'group']
5
6 static values = {
7 max: { type: Number, default: -1 }
8 }
9
10 connect() {
11 this.updateCheckboxStates()
12 this.element.addEventListener('change', (event) => {
13 this.updateCheckboxStates()
14 })
15 }
16
17 updateCheckboxStates() {
18 const checkboxes = Array.from(
19 this.element.querySelectorAll('input[type=checkbox]')
20 )
21 const totalChecked = checkboxes.filter(checkbox => checkbox.checked).length
22
23 if (totalChecked === 1) {
24 // Disable checked boxes so they can't select 0
25 checkboxes.forEach(checkbox => {
26 if (checkbox.checked) {
27 checkbox.disabled = true
28 }
29 })
30 } else if (totalChecked === this.maxValue) {
31 // Disable unchecked boxes so they can't select more than 4
32 checkboxes.forEach(checkbox => {
33 if (!checkbox.checked) {
34 checkbox.disabled = true
35 }
36 })
37 } else {
38 // Ensure everything is enabled
39 checkboxes.forEach(checkbox => {
40 checkbox.disabled = false
41 })
42 }
43 }
44
45 changeTab(event) {
46 const selectedGroup = event.currentTarget.dataset.groupName
47
48 this.groupTabTargets.forEach(groupTab => {
49 groupTab.classList.toggle('selected', groupTab.dataset.groupName === selectedGroup)
50 })
51
52 this.groupTargets.forEach(group => {
53 group.classList.toggle('selected', group.dataset.groupName === selectedGroup)
54 })
55 }
56 }