Skip to content
Snippets Groups Projects
Select Git revision
  • 3f9325d47a709d40f46f7971bef04a365b0f6561
  • master default
  • renovate/opencsv.version
  • renovate/org.springframework.boot-spring-boot-starter-parent-3.x
  • renovate/junit-jupiter-engine.version
  • renovate/selenium.version
  • renovate/testcontainer.version
  • demo
  • v1_8_1
  • v2.18.1
  • v2.18.0
  • v2.17.2
  • v2.17.1
  • v2.17.0
  • v2.16.1
  • v2.16.0
  • v2.15.1
  • v2.15.0
  • v2.14.0
  • v2.13.0
  • v2.12.0
  • v2.11.0
  • v2.10.0
  • v2.9.2
  • v2.9.1
  • v2.9.0
  • v2.8.0
  • testPipeline2
  • v2.7.0
29 results

charts.js

Blame
  • charts.js 5.06 KiB
    $(document).ready(function()
    {
        if($("#modalConfirmDelete").length)
        {
            $('#modalConfirmDelete').modal('open');
        }
    
        if($("#modalFilter").length)
        {
            var modalFilter = $('#modalFilter').modal();
        }
    
        if($(".datepicker").length)
        {
            var pickerStartDate = M.Datepicker.init(document.getElementById('chart-datepicker'), {
                yearRange: 25,
                firstDay: 1,
                showClearBtn: false,
                setDefaultDate: true,
                defaultDate: startDate,
    
                i18n: {
                    // Strings and translations
                    months: monthNames,
                    monthsShort: monthNamesShort,
                    weekdays: weekDays,
                    weekdaysShort: weekDaysShort,
                    weekdaysAbbrev: weekDaysLetters,
    
                    // Buttons
                    done: buttonClose,
    
                    // Accessibility labels
                    labelMonthNext: '>',
                    labelMonthPrev: '<'
                },
    
                // Formats
                format: 'dd.mm.yyyy',
                formatSubmit: 'dd.mm.yyyy',
    
                onSelect: function()
                {
                    if(typeof pickerEndDate !== "undefined")
                    {
                        pickerEndDate.destroy();
                        pickerEndDate = createDatePickerEnd(this.date, pickerEndDate.date);
                    }
                }
            });
    
            // picker end date
            if(typeof endDate !== "undefined")
            {
                var pickerEndDate = createDatePickerEnd(pickerStartDate.date, endDate);
            }
        }
    
        function createDatePickerEnd(minDate, selectedDate)
        {
            if(selectedDate < minDate)
            {
                selectedDate = minDate;
            }
    
            return M.Datepicker.init(document.getElementById('chart-datepicker-end'), {
                yearRange: 50,
                firstDay: 1,
                showClearBtn: false,
                setDefaultDate: true,
                minDate: minDate,
                defaultDate: selectedDate,
    
                i18n: {
                    // Strings and translations
                    months: monthNames,
                    monthsShort: monthNamesShort,
                    weekdays: weekDays,
                    weekdaysShort: weekDaysShort,
                    weekdaysAbbrev: weekDaysLetters,
    
                    // Buttons
                    done: buttonClose,
    
                    // Accessibility labels
                    labelMonthNext: '>',
                    labelMonthPrev: '<'
                },
    
                // Formats
                format: 'dd.mm.yyyy',
                formatSubmit: 'dd.mm.yyyy'
            });
        }
    
        $(".filter-button-close").click(function()
        {
            applyFilter(modalFilter);
        });
    
        $(".filter-button-reset").click(function()
        {
            resetFilter();
            applyFilter(modalFilter);
        });
    
        $(".quick-date").click(function()
        {
            handleQuickDate(this, pickerStartDate, pickerEndDate);
        });
    });
    
    function applyFilter(modal)
    {
        var filterButton = document.getElementById("modalFilterTrigger");
    
        if(isDefaultFilter())
        {
            filterButton.classList.toggle("budgetmaster-blue", true);
            filterButton.classList.toggle("budgetmaster-red", false);
            filterButton.childNodes[1].nodeValue = filterNotActive;
        } else
        {
            filterButton.classList.toggle("budgetmaster-blue", false);
            filterButton.classList.toggle("budgetmaster-red", true);
            filterButton.childNodes[1].nodeValue = filterActive;
        }
    
        modal.modal('close');
    }
    
    function isDefaultFilter()
    {
        var allCheckBoxesChecked = $("#filterSettings input[type=checkbox]:checked").length === $("#filterSettings input[type=checkbox]").length;
        var textInputEmpty = $("#filter-name").val().length === 0;
        return allCheckBoxesChecked && textInputEmpty
    }
    
    function resetFilter()
    {
        $("#filterSettings input[type=checkbox]").prop('checked', true);
        $("#filter-name").val('');
    }
    
    function handleQuickDate(element, pickerStartDate, pickerEndDate)
    {
        var quickType = element.dataset.quick;
        var startDate;
        var endDate;
    
        switch(quickType)
        {
            case '0':
                startDate = moment().startOf('isoWeek');
                endDate = moment().endOf('isoWeek');
                break;
            case '1':
                startDate = moment().startOf('month');
                endDate = moment().endOf('month');
                break;
            case '2':
                startDate = moment().startOf('year');
                endDate = moment().endOf('year');
                break;
            case '3':
                startDate = moment().subtract(7, 'days');
                endDate = moment();
                break;
            case '4':
                startDate = moment().subtract(30, 'days');
                endDate = moment();
                break;
            case '5':
                startDate = moment().subtract(365, 'days');
                endDate = moment();
                break;
        }
    
        setDateRange(startDate, endDate, pickerStartDate, pickerEndDate);
    }
    
    function setDateRange(startDate, endDate, pickerStartDate, pickerEndDate)
    {
        pickerStartDate.setDate(startDate.toDate());
        pickerStartDate.setInputValue();
    
        pickerEndDate.setDate(endDate.toDate());
        pickerEndDate.setInputValue();
    }