(row, dimension = '', option = '', value = '')
| 222 | const addButton = container.getElementById('addFilterRowButton'); |
| 223 | |
| 224 | const initRow = function (row, dimension = '', option = '', value = '') { |
| 225 | const rowIndex = Array.from(table.querySelectorAll('.filterRow')).indexOf(row); |
| 226 | const dimSelect = row.querySelector('.filterDialogDimension'); |
| 227 | dimSelect.id = rowIndex === 0 ? 'filterDialogDimension' : `filterDialogDimension${rowIndex}`; |
| 228 | dimSelect.innerHTML = ''; |
| 229 | Object.keys(availableDimensions).forEach(key => { |
| 230 | dimSelect.options.add(new Option(availableDimensions[key], key)); |
| 231 | }); |
| 232 | if (dimension) { |
| 233 | dimSelect.value = dimension; |
| 234 | } |
| 235 | dimSelect.addEventListener('change', function (evt) { |
| 236 | row.querySelector('.filterDialogValue').dataset.dropdownlistindex = evt.target.selectedIndex; |
| 237 | }); |
| 238 | |
| 239 | const optSelect = row.querySelector('.filterDialogOption'); |
| 240 | optSelect.id = rowIndex === 0 ? 'filterDialogOption' : `filterDialogOption${rowIndex}`; |
| 241 | optSelect.innerHTML = ''; |
| 242 | Object.keys(optionTexts).forEach(key => { |
| 243 | optSelect.options.add(new Option(optionTexts[key], key)); |
| 244 | }); |
| 245 | if (option) { |
| 246 | optSelect.value = option; |
| 247 | } |
| 248 | |
| 249 | const valueInput = row.querySelector('.filterDialogValue'); |
| 250 | valueInput.id = rowIndex === 0 ? 'filterDialogValue' : `filterDialogValue${rowIndex}`; |
| 251 | valueInput.value = value; |
| 252 | valueInput.addEventListener('click', OCA.Analytics.Report.showDropDownList); |
| 253 | valueInput.addEventListener('keydown', function (event) { |
| 254 | if (event.key === 'Enter') { |
| 255 | OCA.Analytics.Filter.processFilterDialog(); |
| 256 | } |
| 257 | }); |
| 258 | valueInput.dataset.dropdownlistindex = dimSelect.selectedIndex; |
| 259 | |
| 260 | const removeIcon = row.querySelector('.icon-analytics-filterRow-remove'); |
| 261 | if (removeIcon) { |
| 262 | removeIcon.addEventListener('click', function () { |
| 263 | row.remove(); |
| 264 | }); |
| 265 | } |
| 266 | }; |
| 267 | |
| 268 | const addRow = function (dimension = '', option = '', value = '') { |
| 269 | const rowTemplate = document.getElementById('templateFilterDialogRow').content; |
no test coverage detected