|
import { characterGroupOverlay } from '../script.js'; |
|
import { BulkEditOverlay, BulkEditOverlayState } from './BulkEditOverlay.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); |
|
} |
|
|