chore(client/ts): port bulk_actions/abstract_bulk_action

This commit is contained in:
Elian Doran 2024-12-21 09:26:37 +02:00
parent 4505564f13
commit ac75e72491
No known key found for this signature in database

View File

@ -2,9 +2,17 @@ import { t } from "../../services/i18n.js";
import server from "../../services/server.js"; import server from "../../services/server.js";
import ws from "../../services/ws.js"; import ws from "../../services/ws.js";
import utils from "../../services/utils.js"; import utils from "../../services/utils.js";
import FAttribute from "../../entities/fattribute.js";
export default class AbstractBulkAction { interface ActionDefinition {
constructor(attribute, actionDef) {
}
export default abstract class AbstractBulkAction {
attribute: FAttribute;
actionDef: ActionDefinition;
constructor(attribute: FAttribute, actionDef: ActionDefinition) {
this.attribute = attribute; this.attribute = attribute;
this.actionDef = actionDef; this.actionDef = actionDef;
} }
@ -20,18 +28,18 @@ export default class AbstractBulkAction {
utils.initHelpDropdown($rendered); utils.initHelpDropdown($rendered);
return $rendered; return $rendered;
} } catch (e: any) {
catch (e) {
logError(`Failed rendering search action: ${JSON.stringify(this.attribute.dto)} with error: ${e.message} ${e.stack}`); logError(`Failed rendering search action: ${JSON.stringify(this.attribute.dto)} with error: ${e.message} ${e.stack}`);
return null; return null;
} }
} }
// to be overridden // to be overridden
doRender() {} abstract doRender(): JQuery<HTMLElement>;
abstract get actionName(): string;
async saveAction(data) { async saveAction(data: {}) {
const actionObject = Object.assign({ name: this.constructor.actionName }, data); const actionObject = Object.assign({ name: (this.constructor as unknown as AbstractBulkAction).actionName }, data);
await server.put(`notes/${this.attribute.noteId}/attribute`, { await server.put(`notes/${this.attribute.noteId}/attribute`, {
attributeId: this.attribute.attributeId, attributeId: this.attribute.attributeId,