diff --git a/public/js/ff/transactions/list.js b/public/js/ff/transactions/list.js index aee76d1507..c364f19e20 100644 --- a/public/js/ff/transactions/list.js +++ b/public/js/ff/transactions/list.js @@ -1,7 +1,137 @@ -/* globals $ */ +/* globals $, edit_selected_txt, delete_selected_txt */ + $(document).ready(function () { "use strict"; - + $('.mass_edit_all').show(); $('.mass_select').click(startMassSelect); $('.mass_stop_select').click(stopMassSelect); -}); \ No newline at end of file + + // top button to select all / deselect all: + $('input[name="select_all"]').change(function () { + if (this.checked) { + checkAll(); + countChecked(); + } else { + uncheckAll(); + countChecked(); + } + }); + $('.select_all_single').change(function () { + countChecked(); + }); + + // click the edit button: + $('.mass_edit').click(goToMassEdit); + // click the delete button: + $('.mass_delete').click(goToMassDelete); +}); + +function goToMassEdit() { + "use strict"; + var checkedArray = getCheckboxes(); + console.log('Journals: ' + checkedArray); + + // go to specially crafted URL: + window.location.href = 'transactions/mass-edit/' + checkedArray; + return false; +} + +function goToMassDelete() { + "use strict"; + var checkedArray = getCheckboxes(); + console.log('Journals: ' + checkedArray); + + // go to specially crafted URL: + window.location.href = 'transactions/mass-delete/' + checkedArray; + return false; +} + +function getCheckboxes() { + "use strict"; + var list = []; + $.each($('.select_all_single'), function (i, v) { + var checkbox = $(v); + if (checkbox.prop('checked')) { + // add to list. + list.push(checkbox.val()); + } + }); + return list; +} + + +function countChecked() { + "use strict"; + var checked = $('.select_all_single:checked').length; + console.log("Now " + checked + " selected."); + if (checked > 0) { + $('.mass_edit span').text(edit_selected_txt + ' (' + checked + ')') + $('.mass_delete span').text(delete_selected_txt + ' (' + checked + ')') + $('.mass_button_options').show(); + + } else { + $('.mass_button_options').hide(); + } +} + + +function checkAll() { + "use strict"; + $('.select_all_single').prop('checked', true); +} +function uncheckAll() { + "use strict"; + $('.select_all_single').prop('checked', false); +} + +function stopMassSelect() { + "use strict"; + + // uncheck all: + uncheckAll(); + countChecked(); + + // hide "select all" box in table header. + $('.select_boxes').hide(); + + // show the other header cell. + $('.no_select_boxes').show(); + + // show edit/delete buttons + $('.edit_buttons').show(); + + // hide the checkbox. + $('.select_single').hide(); + + // show the start button + $('.mass_select').show(); + + // hide the stop button + $('.mass_stop_select').hide(); + + return false; +} + +function startMassSelect() { + "use strict"; + + // show "select all" box in table header. + $('.select_boxes').show(); + + // hide the other header cell. + $('.no_select_boxes').hide(); + + // hide edit/delete buttons + $('.edit_buttons').hide(); + + // show the checkbox. + $('.select_single').show(); + + // hide the start button + $('.mass_select').hide(); + + // show the stop button + $('.mass_stop_select').show(); + + return false; +} \ No newline at end of file diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 1e8de92ccc..6e1182b758 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -318,6 +318,7 @@ return [ 'title_transfer' => 'Transfers', 'title_transfers' => 'Transfers', + // csv import: 'csv_import' => 'Import CSV file', 'csv' => 'CSV', @@ -555,7 +556,10 @@ return [ 'deleted_deposit' => 'Successfully deleted deposit ":description"', 'deleted_transfer' => 'Successfully deleted transfer ":description"', 'stored_journal' => 'Successfully created new transaction ":description"', - + 'select_transactions' => 'Select transactions', + 'stop_selection' => 'Stop selecting transactions', + 'edit_selected' => 'Edit selected', + 'delete_selected' => 'Delete selected', // new user: 'welcome' => 'Welcome to Firefly!', 'createNewAsset' => 'Create a new asset account to get started. ' . diff --git a/resources/views/list/journals.twig b/resources/views/list/journals.twig index f51b5e5b34..a6b96110d1 100644 --- a/resources/views/list/journals.twig +++ b/resources/views/list/journals.twig @@ -3,8 +3,8 @@ - - + @@ -30,7 +30,10 @@ {% for journal in journals %}
{{ trans('list.description') }} {{ trans('list.amount') }}
-
+ @@ -120,4 +124,8 @@
{{ journals.render|raw }}
-
\ No newline at end of file + + \ No newline at end of file diff --git a/resources/views/transactions/index.twig b/resources/views/transactions/index.twig index 13b3b3a4a3..87c415374d 100644 --- a/resources/views/transactions/index.twig +++ b/resources/views/transactions/index.twig @@ -18,3 +18,6 @@ {% endblock %} +{% block scripts %} + +{% endblock %} \ No newline at end of file