n8n-editor-ui
Version:
Workflow Editor UI for n8n
96 lines (95 loc) • 3.54 kB
JavaScript
import { C as computed, Gt as unref, P as defineComponent, T as createBlock, et as openBlock } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
import { _t as useI18n } from "./_MapCache-ficiegRb.js";
import { it as N8nActionToggle_default } from "./src-DgvumQTi.js";
import { O as useTelemetry, m as useMessage, v as useToast } from "./builder.store-sBTWwxRU.js";
import { Dr as DATA_TABLE_CARD_ACTIONS, rs as MODAL_CONFIRM } from "./constants-BbpucWL4.js";
import { t as useDataTableStore } from "./dataTable.store-B4A4ieSD.js";
var DataTableActions_default = /* @__PURE__ */ defineComponent({
__name: "DataTableActions",
props: {
dataTable: {},
isReadOnly: {
type: Boolean,
default: false
},
location: {}
},
emits: ["rename", "onDeleted"],
setup(__props, { emit: __emit }) {
const props = __props;
const emit = __emit;
const dataTableStore = useDataTableStore();
const i18n = useI18n();
const message = useMessage();
const toast = useToast();
const telemetry = useTelemetry();
const actions = computed(() => {
const availableActions = [{
label: i18n.baseText("dataTable.download.csv"),
value: DATA_TABLE_CARD_ACTIONS.DOWNLOAD_CSV,
disabled: false
}, {
label: i18n.baseText("generic.delete"),
value: DATA_TABLE_CARD_ACTIONS.DELETE,
disabled: !dataTableStore.projectPermissions.dataTable.delete || props.isReadOnly
}];
if (props.location === "breadcrumbs") availableActions.unshift({
label: i18n.baseText("generic.rename"),
value: DATA_TABLE_CARD_ACTIONS.RENAME,
disabled: !dataTableStore.projectPermissions.dataTable.update || props.isReadOnly
});
return availableActions;
});
const onAction = async (action) => {
switch (action) {
case DATA_TABLE_CARD_ACTIONS.RENAME:
emit("rename", {
dataTable: props.dataTable,
action: "rename"
});
break;
case DATA_TABLE_CARD_ACTIONS.DOWNLOAD_CSV:
await downloadDataTableCsv();
break;
case DATA_TABLE_CARD_ACTIONS.DELETE:
if (await message.confirm(i18n.baseText("dataTable.delete.confirm.message", { interpolate: { name: props.dataTable.name } }), i18n.baseText("dataTable.delete.confirm.title"), {
confirmButtonText: i18n.baseText("generic.delete"),
cancelButtonText: i18n.baseText("generic.cancel")
}) === "confirm") await deleteDataTable();
break;
}
};
const downloadDataTableCsv = async () => {
try {
await dataTableStore.downloadDataTableCsv(props.dataTable.id, props.dataTable.projectId);
telemetry.track("User downloaded data table CSV", {
data_table_id: props.dataTable.id,
data_table_project_id: props.dataTable.projectId
});
} catch (error) {
toast.showError(error, i18n.baseText("dataTable.download.error"));
}
};
const deleteDataTable = async () => {
try {
if (!await dataTableStore.deleteDataTable(props.dataTable.id, props.dataTable.projectId)) throw new Error(i18n.baseText("generic.unknownError"));
emit("onDeleted");
telemetry.track("User deleted data table", {
data_table_id: props.dataTable.id,
data_table_project_id: props.dataTable.projectId
});
} catch (error) {
toast.showError(error, i18n.baseText("dataTable.delete.error"));
}
};
return (_ctx, _cache) => {
return openBlock(), createBlock(unref(N8nActionToggle_default), {
actions: actions.value,
theme: "dark",
"data-test-id": "data-table-card-actions",
onAction
}, null, 8, ["actions"]);
};
}
});
export { DataTableActions_default as t };