import SpacedUpdate from "../../../services/spaced_update.js"; import AbstractBulkAction from "../abstract_bulk_action.js"; import noteAutocompleteService from "../../../services/note_autocomplete.js"; import { t } from "../../../services/i18n.js"; const TPL = `
${t('add_relation.add_relation')}
${t('add_relation.to')}
`; export default class AddRelationBulkAction extends AbstractBulkAction { static get actionName() { return "addRelation"; } static get actionTitle() { return t('add_relation.add_relation'); } doRender() { const $action = $(TPL); const $relationName = $action.find('.relation-name'); $relationName.val(this.actionDef.relationName || ""); const $targetNote = $action.find('.target-note'); noteAutocompleteService.initNoteAutocomplete($targetNote); $targetNote.setNote(this.actionDef.targetNoteId); $targetNote.on('autocomplete:closed', () => spacedUpdate.scheduleUpdate()); const spacedUpdate = new SpacedUpdate(async () => { await this.saveAction({ relationName: $relationName.val(), targetNoteId: $targetNote.getSelectedNoteId() }); }, 1000); $relationName.on('input', () => spacedUpdate.scheduleUpdate()); $targetNote.on('input', () => spacedUpdate.scheduleUpdate()); return $action; } }