Skip to content
Snippets Groups Projects
Select Git revision
  • 239d1612dd102659ed28e12e5cc02548ad058713
  • master default
  • 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
27 results

transactionImport.js

Blame
  • transactionImport.js 2.48 KiB
    $(document).ready(function()
    {
        M.FloatingActionButton.init(document.querySelectorAll('.edit-transaction-button'), {
            direction: 'left',
            hoverEnabled: false
        });
    
        $('.collapsible').collapsible();
    
        $('#table-transaction-rows').DataTable({
            paging: false,
            order: [[1, 'desc']],
            info: false,
            scrollX: true,
            scrollY: false,
            columnDefs: [
                { orderable: false, targets:  5}
            ],
            language: { search: '' , searchPlaceholder: localizedSearch},
        });
    
        if(transactionNameSuggestions !== undefined)
        {
            let nameElements = document.querySelectorAll('.autocomplete');
            let autoCompleteInstances = M.Autocomplete.init(nameElements, {
                data: transactionNameSuggestions,
            });
    
            // prevent tab traversal for dropdown (otherwise "tab" needs to be hit twice to jump from name input to amount input)
            for(let i = 0; i < autoCompleteInstances.length; i++)
            {
                autoCompleteInstances[i].dropdown.dropdownEl.tabIndex = -1;
            }
        }
    
        initCsvTransactionButtons();
    });
    
    function initCsvTransactionButtons()
    {
        const buttonsSkip = document.getElementsByClassName('button-request-transaction-import-skip');
        for(let i = 0; i < buttonsSkip.length; i++)
        {
            const button = buttonsSkip[i];
            button.addEventListener('click', function()
            {
                performCsvTransactionGetRequestWithoutReload(button, 'Error skipping transaction');
            });
        }
    
        const buttonsUndoSkip = document.getElementsByClassName('button-request-transaction-import-undo-skip');
        for(let i = 0; i < buttonsUndoSkip.length; i++)
        {
            const button = buttonsUndoSkip[i];
            button.addEventListener('click', function()
            {
                performCsvTransactionGetRequestWithoutReload(button, 'Error undo skip transaction');
            });
        }
    }
    
    function performCsvTransactionGetRequestWithoutReload(button, errorMessage)
    {
        const url = button.dataset.url;
        const csvTransactionId = button.dataset.index;
    
        $.ajax({
            type: 'GET',
            url: url,
            data: {},
            success: function(data)
            {
                $('#transaction-import-row-' + csvTransactionId).replaceWith(data);
                initCsvTransactionButtons();
            },
            error: function(response)
            {
                M.toast({
                    html: errorMessage,
                    classes: 'red'
                });
                console.error(response);
            }
        });
    }