| import { characterGroupOverlay } from '../script.js'; |
| import { BulkEditOverlay, BulkEditOverlayState, CharacterContextMenu } from './BulkEditOverlay.js'; |
| import { event_types, eventSource } from './events.js'; |
|
|
| let is_bulk_edit = false; |
|
|
| const enableBulkEdit = () => { |
| enableBulkSelect(); |
| characterGroupOverlay.selectState(); |
| |
| $('.bulkEditOptionElement').show(); |
| is_bulk_edit = true; |
| characterGroupOverlay.updateSelectedCount(0); |
| }; |
|
|
| const disableBulkEdit = () => { |
| disableBulkSelect(); |
| characterGroupOverlay.browseState(); |
| |
| $('.bulkEditOptionElement').hide(); |
| is_bulk_edit = false; |
| characterGroupOverlay.updateSelectedCount(0); |
| }; |
|
|
| const toggleBulkEditMode = (isBulkEdit) => { |
| if (isBulkEdit) { |
| disableBulkEdit(); |
| } else { |
| enableBulkEdit(); |
| } |
| }; |
|
|
| |
| |
| |
| function onEditButtonClick() { |
| console.log('Edit button clicked'); |
| toggleBulkEditMode(is_bulk_edit); |
| } |
|
|
| |
| |
| |
| function onSelectAllButtonClick() { |
| console.log('Bulk select all button clicked'); |
| const characters = Array.from(document.querySelectorAll('#' + BulkEditOverlay.containerId + ' .' + BulkEditOverlay.characterClass)); |
| let atLeastOneSelected = false; |
| for (const character of characters) { |
| const checked = $(character).find('.bulk_select_checkbox:checked').length > 0; |
| if (!checked && character instanceof HTMLElement) { |
| characterGroupOverlay.toggleSingleCharacter(character); |
| atLeastOneSelected = true; |
| } |
| } |
|
|
| if (!atLeastOneSelected) { |
| |
| for(const character of characters) { |
| const checked = $(character).find('.bulk_select_checkbox:checked') ?? false; |
| if (checked && character instanceof HTMLElement) { |
| characterGroupOverlay.toggleSingleCharacter(character); |
| } |
| } |
| } |
| } |
|
|
| |
| |
| |
| async function onDeleteButtonClick() { |
| console.log('Delete button clicked'); |
|
|
| |
| await characterGroupOverlay.handleContextMenuDelete(); |
| } |
|
|
| |
| |
| |
| function enableBulkSelect() { |
| $('#rm_print_characters_block .character_select').each((i, el) => { |
| |
| if ($(el).find('.bulk_select_checkbox').length > 0) { |
| return; |
| } |
| const checkbox = $('<input type=\'checkbox\' class=\'bulk_select_checkbox\'>'); |
| checkbox.on('change', () => { |
| |
| }); |
| $(el).prepend(checkbox); |
| }); |
| $('#rm_print_characters_block.group_overlay_mode_select .bogus_folder_select, #rm_print_characters_block.group_overlay_mode_select .group_select') |
| .addClass('disabled'); |
|
|
| $('#rm_print_characters_block').addClass('bulk_select'); |
| |
| $(document).on('click', '.bulk_select_checkbox', function (event) { |
| event.stopImmediatePropagation(); |
| }); |
| } |
|
|
| |
| |
| |
| function disableBulkSelect() { |
| $('.bulk_select_checkbox').remove(); |
| $('#rm_print_characters_block.group_overlay_mode_select .bogus_folder_select, #rm_print_characters_block.group_overlay_mode_select .group_select') |
| .removeClass('disabled'); |
| $('#rm_print_characters_block').removeClass('bulk_select'); |
| } |
|
|
| |
| |
| |
| export function initBulkEdit() { |
| characterGroupOverlay.addStateChangeCallback((state) => { |
| if (state === BulkEditOverlayState.select) enableBulkEdit(); |
| if (state === BulkEditOverlayState.browse) disableBulkEdit(); |
| }); |
|
|
| $('#bulkEditButton').on('click', onEditButtonClick); |
| $('#bulkSelectAllButton').on('click', onSelectAllButtonClick); |
| $('#bulkDeleteButton').on('click', onDeleteButtonClick); |
|
|
| const characterContextMenu = new CharacterContextMenu(characterGroupOverlay); |
| eventSource.on(event_types.CHARACTER_PAGE_LOADED, characterGroupOverlay.onPageLoad); |
| console.debug('Character context menu initialized', characterContextMenu); |
| } |
|
|