feat: workflow builder
created page with vue setup
This commit is contained in:
parent
9dc2a32952
commit
aa3b6d3ecc
6 changed files with 96 additions and 0 deletions
7
frappe/public/js/workflow_builder/WorkflowBuilder.vue
Normal file
7
frappe/public/js/workflow_builder/WorkflowBuilder.vue
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<template>
|
||||
{{ workflow }}
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
let props = defineProps(["workflow"]);
|
||||
</script>
|
||||
33
frappe/public/js/workflow_builder/workflow_builder.bundle.js
Normal file
33
frappe/public/js/workflow_builder/workflow_builder.bundle.js
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
import { createApp } from "vue";
|
||||
import WorkflowBuilderComponent from "./WorkflowBuilder.vue";
|
||||
|
||||
class WorkflowBuilder {
|
||||
constructor({ wrapper, page, workflow }) {
|
||||
this.$wrapper = $(wrapper);
|
||||
this.page = page;
|
||||
this.workflow = workflow;
|
||||
|
||||
this.init();
|
||||
}
|
||||
|
||||
init() {
|
||||
// set page title
|
||||
this.page.set_title(__("Editing {0}", [this.workflow]));
|
||||
|
||||
this.setup_app();
|
||||
}
|
||||
|
||||
setup_app() {
|
||||
// create a vue instance
|
||||
let app = createApp(WorkflowBuilderComponent, { workflow: this.workflow });
|
||||
SetVueGlobals(app);
|
||||
app.use(pinia);
|
||||
|
||||
// mount the app
|
||||
this.$workflow_builder = app.mount(this.$wrapper.get(0));
|
||||
}
|
||||
}
|
||||
|
||||
frappe.provide("frappe.ui");
|
||||
frappe.ui.WorkflowBuilder = WorkflowBuilder;
|
||||
export default WorkflowBuilder;
|
||||
0
frappe/workflow/page/__init__.py
Normal file
0
frappe/workflow/page/__init__.py
Normal file
0
frappe/workflow/page/workflow_builder/__init__.py
Normal file
0
frappe/workflow/page/workflow_builder/__init__.py
Normal file
33
frappe/workflow/page/workflow_builder/workflow_builder.js
Normal file
33
frappe/workflow/page/workflow_builder/workflow_builder.js
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
frappe.pages["workflow-builder"].on_page_load = function (wrapper) {
|
||||
frappe.ui.make_app_page({
|
||||
parent: wrapper,
|
||||
title: __("Workflow Builder"),
|
||||
single_column: true,
|
||||
});
|
||||
|
||||
// hot reload in development
|
||||
if (frappe.boot.developer_mode) {
|
||||
frappe.hot_update = frappe.hot_update || [];
|
||||
frappe.hot_update.push(() => load_workflow_builder(wrapper));
|
||||
}
|
||||
};
|
||||
|
||||
frappe.pages["workflow-builder"].on_page_show = function (wrapper) {
|
||||
load_workflow_builder(wrapper);
|
||||
};
|
||||
|
||||
function load_workflow_builder(wrapper) {
|
||||
let route = frappe.get_route();
|
||||
let $parent = $(wrapper).find(".layout-main-section");
|
||||
$parent.empty();
|
||||
|
||||
if (route.length > 1) {
|
||||
frappe.require("workflow_builder.bundle.js").then(() => {
|
||||
frappe.workflow_builder = new frappe.ui.WorkflowBuilder({
|
||||
wrapper: $parent,
|
||||
page: wrapper.page,
|
||||
workflow: route[1],
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
23
frappe/workflow/page/workflow_builder/workflow_builder.json
Normal file
23
frappe/workflow/page/workflow_builder/workflow_builder.json
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"content": null,
|
||||
"creation": "2023-05-01 13:02:17.223595",
|
||||
"docstatus": 0,
|
||||
"doctype": "Page",
|
||||
"idx": 0,
|
||||
"modified": "2023-05-01 13:02:17.223595",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Workflow",
|
||||
"name": "workflow-builder",
|
||||
"owner": "Administrator",
|
||||
"page_name": "workflow-builder",
|
||||
"roles": [
|
||||
{
|
||||
"role": "System Manager"
|
||||
}
|
||||
],
|
||||
"script": null,
|
||||
"standard": "Yes",
|
||||
"style": null,
|
||||
"system_page": 0,
|
||||
"title": "Workflow Builder"
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue