diff --git a/app/javascript/dashboard/api/captain/workflows.js b/app/javascript/dashboard/api/captain/workflows.js new file mode 100644 index 000000000..9d9fc4a80 --- /dev/null +++ b/app/javascript/dashboard/api/captain/workflows.js @@ -0,0 +1,40 @@ +/* global axios */ +import ApiClient from '../ApiClient'; + +class CaptainWorkflows extends ApiClient { + constructor() { + super('captain/assistants', { accountScoped: true }); + } + + get({ assistantId, page = 1 } = {}) { + return axios.get(`${this.url}/${assistantId}/workflows`, { + params: { page }, + }); + } + + show({ assistantId, id }) { + return axios.get(`${this.url}/${assistantId}/workflows/${id}`); + } + + create({ assistantId, ...data } = {}) { + return axios.post(`${this.url}/${assistantId}/workflows`, { + workflow: data, + }); + } + + update({ assistantId, id }, data = {}) { + return axios.put(`${this.url}/${assistantId}/workflows/${id}`, { + workflow: data, + }); + } + + delete({ assistantId, id }) { + return axios.delete(`${this.url}/${assistantId}/workflows/${id}`); + } + + executions({ assistantId, id }) { + return axios.get(`${this.url}/${assistantId}/workflows/${id}/executions`); + } +} + +export default new CaptainWorkflows(); diff --git a/app/javascript/dashboard/components-next/captain/workflows/NodeConfigPanel.vue b/app/javascript/dashboard/components-next/captain/workflows/NodeConfigPanel.vue new file mode 100644 index 000000000..48ffc80c4 --- /dev/null +++ b/app/javascript/dashboard/components-next/captain/workflows/NodeConfigPanel.vue @@ -0,0 +1,159 @@ + + +