MCPcopy Create free account
hub / github.com/Rello/analytics / initRow

Function initRow

js/filter.js:224–266  ·  view source on GitHub ↗
(row, dimension = '', option = '', value = '')

Source from the content-addressed store, hash-verified

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;

Callers 2

addRowFunction · 0.85
filter.jsFile · 0.85

Calls 3

addMethod · 0.45
addEventListenerMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected