From 90a7c2f4f98117aec03049b6e72d546d529dfede Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 25 Jul 2021 12:43:09 +0200 Subject: [PATCH] #585 - initially select chart preview --- .../budgetmaster/charts/ChartSettings.java | 4 ++-- src/main/resources/static/js/charts.js | 24 ++++++++++--------- .../resources/templates/charts/charts.ftl | 4 ++++ 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartSettings.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartSettings.java index d4177402a..aac9e2d9f 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartSettings.java +++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartSettings.java @@ -56,12 +56,12 @@ public class ChartSettings this.groupType = groupType; } - public int getChartID() + public Integer getChartID() { return chartID; } - public void setChartID(int chartID) + public void setChartID(Integer chartID) { this.chartID = chartID; } diff --git a/src/main/resources/static/js/charts.js b/src/main/resources/static/js/charts.js index ba94c935e..896d50c8a 100644 --- a/src/main/resources/static/js/charts.js +++ b/src/main/resources/static/js/charts.js @@ -81,13 +81,13 @@ $(document).ready(function() { toggleChartTypeButtons('button-display-type', this); hideGroupTypeButtonsIfOnlyOneDistinctGroup(); - filterChartPreviews(); + filterChartPreviews(-1); }); $('.button-group-type').click(function() { toggleChartTypeButtons('button-group-type', this); - filterChartPreviews(); + filterChartPreviews(-1); }); $('.chart-preview-column').click(function() @@ -115,12 +115,13 @@ $(document).ready(function() applyFilter(); }); - $('#buttonShowChartSettings').click(function(){ + $('#buttonShowChartSettings').click(function() + { document.getElementsByName('NewChartSettings')[0].classList.toggle('hidden', false); document.getElementById('buttonShowChartSettings').classList.toggle('hidden', true); }); - filterChartPreviews(); + filterChartPreviews(selectChartID); let showEditSettingsButton = document.getElementsByName('NewChartSettings')[0].classList.contains('hidden'); document.getElementById('buttonShowChartSettings').classList.toggle('hidden', !showEditSettingsButton); @@ -266,7 +267,7 @@ function toggleChartTypeButtons(styleClassName, item) function hideGroupTypeButtonsIfOnlyOneDistinctGroup() { let displayTypeName = document.querySelector('.button-display-type.active').dataset.value; - let chartsWithCurrentDisplayType = document.querySelectorAll('.chart-preview-column[data-display-type="' + displayTypeName +'"]'); + let chartsWithCurrentDisplayType = document.querySelectorAll('.chart-preview-column[data-display-type="' + displayTypeName + '"]'); let groupTypes = new Set(); for(let i = 0; i < chartsWithCurrentDisplayType.length; i++) @@ -278,7 +279,7 @@ function hideGroupTypeButtonsIfOnlyOneDistinctGroup() document.getElementById('chart-group-type-buttons').classList.toggle('hidden', hasOnlyOneDistinctGroupType); } -function filterChartPreviews() +function filterChartPreviews(initiallySelectedChartID) { let displayTypeName = document.querySelector('.button-display-type.active').dataset.value; let groupTypeName = document.querySelector('.button-group-type.active').dataset.value; @@ -308,16 +309,17 @@ function filterChartPreviews() } } - unsetActiveChartPreview(); + unsetActiveChartPreview(initiallySelectedChartID); toggleCustomChartButton(displayTypeName === 'CUSTOM'); } -function unsetActiveChartPreview() +function unsetActiveChartPreview(initiallySelectedChartID) { - let allChartPreviews = document.getElementsByClassName('chart-preview'); - for(let i = 0; i < allChartPreviews.length; i++) + let allChartPreviewColumns = document.getElementsByClassName('chart-preview-column'); + for(let i = 0; i < allChartPreviewColumns.length; i++) { - allChartPreviews[i].classList.toggle('active', false); + let column = allChartPreviewColumns[i]; + column.querySelector('.chart-preview').classList.toggle('active', column.dataset.id === initiallySelectedChartID); } document.getElementsByName('chartID')[0].value = ''; diff --git a/src/main/resources/templates/charts/charts.ftl b/src/main/resources/templates/charts/charts.ftl index e28600489..a31298d04 100644 --- a/src/main/resources/templates/charts/charts.ftl +++ b/src/main/resources/templates/charts/charts.ftl @@ -68,6 +68,10 @@ </div> <input type="hidden" name="chartID" value=""> + <script> + selectChartID="${chartSettings.getChartID()!-1}"; + </script> + <@dateSelect/> <@filterOptions/> -- GitLab