@tachybase/module-event-source 1.6.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/custom-event-sources/CustomEventSourcePane.schema.d.ts +5 -0
- package/dist/client/index.js +3 -3
- package/dist/externalVersion.js +6 -6
- package/dist/locale/en-US.json +2 -0
- package/dist/locale/zh-CN.json +2 -0
- package/dist/server/actions/CustomEventSourceController.d.ts +2 -2
- package/dist/server/actions/CustomEventSourceController.js +9 -9
- package/dist/server/trigger/AppEventTrigger.js +1 -1
- package/dist/server/trigger/DatabaseEventTrigger.js +1 -1
- package/dist/server/webhooks/webhooks.js +5 -5
- package/package.json +8 -8
package/dist/client/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
(function(c,o){typeof exports=="object"&&typeof module!="undefined"?o(exports,require("@tachybase/client"),require("@tego/client"),require("react/jsx-runtime"),require("@tachybase/module-workflow/client"),require("@tachybase/schema"),require("react"),require("@ant-design/icons"),require("@dnd-kit/core"),require("antd"),require("lodash")):typeof define=="function"&&define.amd?define(["exports","@tachybase/client","@tego/client","react/jsx-runtime","@tachybase/module-workflow/client","@tachybase/schema","react","@ant-design/icons","@dnd-kit/core","antd","lodash"],o):(c=typeof globalThis!="undefined"?globalThis:c||self,o(c["@tachybase/module-event-source"]={},c["@tachybase/client"],c["@tego/client"],c.jsxRuntime,c["@tachybase/module-workflow"],c["@tachybase/schema"],c.react,c["@ant-design/icons"],c["@dnd-kit/core"],c.antd,c.lodash))})(this,function(c,o,d,t,S,f,y,I,g,h,P){"use strict";var We=Object.defineProperty,Oe=Object.defineProperties;var Ke=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var J=(c,o,d)=>o in c?We(c,o,{enumerable:!0,configurable:!0,writable:!0,value:d}):c[o]=d,u=(c,o)=>{for(var d in o||(o={}))H.call(o,d)&&J(c,d,o[d]);if(V)for(var d of V(o))_.call(o,d)&&J(c,d,o[d]);return c},F=(c,o)=>Oe(c,Ke(o));var q=(c,o)=>{var d={};for(var t in c)H.call(c,t)&&o.indexOf(t)<0&&(d[t]=c[t]);if(c!=null&&V)for(var t of V(c))o.indexOf(t)<0&&_.call(c,t)&&(d[t]=c[t]);return d};var k=(c,o,d)=>new Promise((t,S)=>{var f=g=>{try{I(d.next(g))}catch(h){S(h)}},y=g=>{try{I(d.throw(g))}catch(h){S(h)}},I=g=>g.done?t(g.value):Promise.resolve(g.value).then(f,y);I((d=d.apply(c,o)).next())});const M={name:"customEventSources",fields:[{name:"id",type:"bigInt",interface:"input",uiSchema:{title:"ID",type:"number","x-component":"InputNumber"}},{name:"collectionName",type:"string",interface:"input",uiSchema:{title:'{{t("collection Name")}}',type:"string","x-component":"Input",required:!0}},{name:"pathDesc",type:"text",interface:"input",uiSchema:{title:'{{t("path")}}',type:"string","x-component":"Input",required:!0}},{type:"belongsTo",name:"workflow",foreignKey:"workflowId",primaryKey:!1,interface:"m2o",uiSchema:{type:"number",title:'{{t("Workflow", { ns: "workflow" })}}',"x-component":"RemoteSelect","x-component-props":{fieldNames:{label:"title",value:"id"},service:{resource:"workflows"}}}},{type:"belongsTo",name:"uiSchema",foreignKey:"uiSchemaId",primaryKey:!1,interface:"m2o",uiSchema:{type:"number",title:'{{t("uiSchema", { ns: "workflow" })}}',"x-component":"RemoteSelect","x-component-props":{fieldNames:{label:"title",value:"id"},service:{resource:"uiSchema"}}}},{type:"belongsTo",name:"completeUiSchema",foreignKey:"completeUiSchemaId",primaryKey:!1,interface:"m2o",uiSchema:{type:"number",title:'{{t("completeUiSchema", { ns: "workflow" })}}',"x-component":"RemoteSelect","x-component-props":{fieldNames:{label:"title",value:"id"},service:{resource:"uiSchema"}}}}]},W="event-source";function Q(e,r={}){return o.i18n.t(e,F(u({},r),{ns:[W,"core"]}))}const n=(e,r={})=>o.tval(e,u({ns:[W,"core"]},r)),X={type:"void",properties:{managerProvider:{type:"void","x-decorator":"TableBlockProvider","x-component":"CardItem","x-decorator-props":{collection:M,action:"list",params:{filter:{},except:["config"],appends:["workflow","uiSchema","completeUiSchema"]},rowKey:"id"},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{filter:{type:"void",title:'{{ t("Filter") }}',"x-action":"filter","x-component":"Filter.Action","x-use-component-props":"useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"},sync:{type:"void",title:n("Sync"),"x-component":"Action","x-component-props":{icon:"ReloadOutlined"},"x-use-component-props":"useSyncCustomEventSource"},refresh:{type:"void",title:'{{ t("Refresh") }}',"x-action":"refresh","x-component":"Action","x-settings":"actionSettings:refresh","x-component-props":{icon:"ReloadOutlined"},"x-use-component-props":"useRefreshActionProps"}}},table:{type:"array","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"}},properties:{id:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:10,align:"center"},properties:{id:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},workflow:{type:"void",title:'{{t("Workflow", { ns: "workflow" })}}',"x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:200},properties:{workflow:{"x-component":"ColumnWorkflow","x-read-pretty":!0}}},uiSchema:{type:"void",title:'{{t("uiSchema", { ns: "workflow" })}}',"x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:200},properties:{uiSchema:{"x-component":"ColumnUISchema","x-read-pretty":!0}}},completeUiSchema:{type:"void",title:'{{t("completeUiSchema", { ns: "workflow" })}}',"x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:200},properties:{completeUiSchema:{"x-component":"ColumnUISchema","x-read-pretty":!0}}},collectionName:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{collectionName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},pathDesc:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{pathDesc:{type:"string","x-component":"CollectionField","x-component-props":{style:{overflow:"scroll"}},"x-read-pretty":!0}}}}}}}}};function Y(){const{refresh:e}=o.useDataBlockRequest(),r=o.useDataBlockResource();return{onClick(){return k(this,null,function*(){yield r.sync({name:"sync"}),e()})}}}const Z=()=>t.jsx(o.ExtendCollectionsProvider,{collections:[M],children:t.jsx(o.SchemaComponentOptions,{components:{ColumnWorkflow:$,ColumnUISchema:R},scope:{useSyncCustomEventSource:Y},children:t.jsx(S.WorkflowPane,{schema:X})})}),$=f.observer(()=>{var r,i;const e=f.useField();return`${(r=e==null?void 0:e.value)==null?void 0:r.title}-${(i=e==null?void 0:e.value)==null?void 0:i.id}`},{displayName:"ColumnWorkflow"}),R=f.observer(()=>{var r,i;const e=f.useField();return((r=e==null?void 0:e.value)==null?void 0:r.title)||`${(i=e==null?void 0:e.value)==null?void 0:i["x-uid"]}`},{displayName:"ColumnUISchema"});class E{}class ee extends E{constructor(){super(...arguments),this.title=n("App event"),this.description=n("Application-related events, such as beforeStop: before the application stops, afterStart: after the application starts"),this.options={eventName:{required:!0,type:"string",title:n("Event name"),"x-decorator":"FormItem","x-component":"Input","x-reactions":['{{(field) => { const collection = field.query("options.collection").get("value"); const event = field.query("options.collectionEvent").get("value"); field.value = `${collection || ""}.${event || ""}`; }}}']}}}}class oe extends E{constructor(){super(...arguments),this.title=n("Custom resource action"),this.description=n("for creating custom requests, try not to duplicate with other requests"),this.options={resourceName:{type:"string",title:n("Resource name"),"x-decorator":"FormItem","x-component":"Input"},actionName:{type:"string",title:n("Action name"),"x-decorator":"FormItem","x-component":"Input"},triggerOnAssociation:{type:"boolean",title:n("Trigger on association"),"x-decorator":"FormItem","x-component":"Checkbox"}}}}class te extends E{constructor(){super(...arguments),this.title=n("Database event"),this.description=n("Add specific hook events after creating, modifying, and deleting data tables"),this.options={collection:{type:"string",title:'{{t("Collection")}}',"x-decorator":"FormItem","x-component":"DataSourceCollectionCascader","x-decorator-props":{tooltip:n("Auxiliary selection, you can also customize the event name")}},collectionEvent:{title:n("Collection event"),"x-decorator":"FormItem","x-component":"Select",enum:[{label:n("Before Save (Create/Update)"),value:"beforeSave"},{label:n("Before Create"),value:"beforeCreate"},{label:n("Before Update"),value:"beforeUpdate"},{label:n("Before Delete"),value:"beforeDestroy"},{label:n("After Save (Create/Update)"),value:"afterSave"},{label:n("After Create"),value:"afterCreate"},{label:n("After Update"),value:"afterUpdate"},{label:n("After Delete"),value:"afterDestroy"},{label:n("After Save with Associations"),value:"afterSaveWithAssociations"},{label:n("After Create with Associations"),value:"afterCreateWithAssociations"},{label:n("After Update with Associations"),value:"afterUpdateWithAssociations"}],"x-decorator-props":{tooltip:n("Auxiliary selection, you can also customize the event name")}},eventName:{title:n("Event name"),required:!0,"x-decorator":"FormItem","x-component":"Input","x-reactions":['{{(field) => { const collection = field.query("options.collection").get("value"); const event = field.query("options.collectionEvent").get("value"); field.value = `${collection || ""}.${event || ""}`; }}}']}}}}class U extends E{constructor(r,i){super(),this.options={resourceName:{type:"string",title:n("Resource name"),"x-decorator":"FormItem","x-component":"Input"},actionName:{type:"string",title:n("Action name"),"x-decorator":"FormItem","x-component":"Input"},triggerOnAssociation:{type:"boolean",title:n("Trigger on association"),"x-decorator":"FormItem","x-component":"Checkbox"}},this.title=r,this.description=i}}const L=y.createContext({refresh:()=>{},activeKey:"",setActiveKey:()=>{}}),B=()=>y.useContext(L);function re({data:e}){const{label:r,color:i,options:a}=e,s=o.useCompile();return t.jsxs(o.Space,{direction:"vertical",children:[t.jsx(h.Tag,{color:i,children:s(r)}),t.jsx(h.Typography.Text,{type:"secondary",style:{whiteSpace:"normal"},children:s(a.description)})]})}const D={name:"webhooks",title:"webhooks",fields:[{type:"string",name:"name",interface:"input",uiSchema:{title:n("Name"),type:"string","x-component":"Input",required:!0}},{type:"boolean",name:"enabled",interface:"radioGroup",uiSchema:{title:n("Enabled"),type:"string",required:!0,enum:[{label:n("On"),value:!0,color:"#52c41a"},{label:n("Off"),value:!1}],"x-component":"Radio.Group","x-decorator":"FormItem",default:!1}},{type:"belongsToMany",name:"category",target:"webhookCategories",sourceKey:"id",foreignKey:"webhookId",otherKey:"categoryId",targetKey:"id",sortBy:"sort",through:"webhookCategory",collectionName:"webhooks",interface:"m2m",uiSchema:{title:`{{t("webhook Category", { ns: "${W}" })}}`,type:"array","x-component":"AssociationField","x-component-props":{fieldNames:{value:"id",label:"name"}}}},{type:"string",name:"description",interface:"textarea",uiSchema:{title:'{{t("Description")}}',type:"string","x-component":"Input.TextArea"}},{type:"string",name:"workflowKey",interface:"select",uiSchema:{title:n("Workflow"),type:"string","x-component":"WorkflowSelect","x-component-props":{buttonAction:"customize:triggerWorkflows",noCollection:!0,label:"title",value:"key"}}},{type:"string",name:"type",uiSchema:{title:n("Type"),"x-component":"Select","x-decorator":"FormItem",enum:"{{useTriggersOptions()}}","x-component-props":{optionRender:re,popupMatchSelectWidth:!0,listHeight:300}}},{type:"json",name:"options",interface:"object",uiSchema:{type:"object",title:n("Options"),"x-component":"TypeContainer"}},{type:"text",name:"code",interface:"textarea",uiSchema:{title:n("Code"),type:"string","x-component":"CodeMirror","x-component-props":{defaultValue:`// ctx.action.params can get user query
|
|
1
|
+
(function(a,o){typeof exports=="object"&&typeof module!="undefined"?o(exports,require("@tachybase/client"),require("@tego/client"),require("react/jsx-runtime"),require("@tachybase/module-workflow/client"),require("@tachybase/schema"),require("react"),require("@ant-design/icons"),require("@dnd-kit/core"),require("antd"),require("lodash")):typeof define=="function"&&define.amd?define(["exports","@tachybase/client","@tego/client","react/jsx-runtime","@tachybase/module-workflow/client","@tachybase/schema","react","@ant-design/icons","@dnd-kit/core","antd","lodash"],o):(a=typeof globalThis!="undefined"?globalThis:a||self,o(a["@tachybase/module-event-source"]={},a["@tachybase/client"],a["@tego/client"],a.jsxRuntime,a["@tachybase/module-workflow"],a["@tachybase/schema"],a.react,a["@ant-design/icons"],a["@dnd-kit/core"],a.antd,a.lodash))})(this,function(a,o,d,t,w,f,y,I,g,h,E){"use strict";var We=Object.defineProperty,Ke=Object.defineProperties;var Oe=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable;var H=(a,o,d)=>o in a?We(a,o,{enumerable:!0,configurable:!0,writable:!0,value:d}):a[o]=d,u=(a,o)=>{for(var d in o||(o={}))_.call(o,d)&&H(a,d,o[d]);if(V)for(var d of V(o))Q.call(o,d)&&H(a,d,o[d]);return a},F=(a,o)=>Ke(a,Oe(o));var q=(a,o)=>{var d={};for(var t in a)_.call(a,t)&&o.indexOf(t)<0&&(d[t]=a[t]);if(a!=null&&V)for(var t of V(a))o.indexOf(t)<0&&Q.call(a,t)&&(d[t]=a[t]);return d};var S=(a,o,d)=>new Promise((t,w)=>{var f=g=>{try{I(d.next(g))}catch(h){w(h)}},y=g=>{try{I(d.throw(g))}catch(h){w(h)}},I=g=>g.done?t(g.value):Promise.resolve(g.value).then(f,y);I((d=d.apply(a,o)).next())});const M={name:"customEventSources",fields:[{name:"id",type:"bigInt",interface:"input",uiSchema:{title:"ID",type:"number","x-component":"InputNumber"}},{name:"collectionName",type:"string",interface:"input",uiSchema:{title:'{{t("collection Name")}}',type:"string","x-component":"Input",required:!0}},{name:"pathDesc",type:"text",interface:"input",uiSchema:{title:'{{t("path")}}',type:"string","x-component":"Input",required:!0}},{type:"belongsTo",name:"workflow",foreignKey:"workflowId",primaryKey:!1,interface:"m2o",uiSchema:{type:"number",title:'{{t("Workflow", { ns: "workflow" })}}',"x-component":"RemoteSelect","x-component-props":{fieldNames:{label:"title",value:"id"},service:{resource:"workflows"}}}},{type:"belongsTo",name:"uiSchema",foreignKey:"uiSchemaId",primaryKey:!1,interface:"m2o",uiSchema:{type:"number",title:'{{t("uiSchema", { ns: "workflow" })}}',"x-component":"RemoteSelect","x-component-props":{fieldNames:{label:"title",value:"id"},service:{resource:"uiSchema"}}}},{type:"belongsTo",name:"completeUiSchema",foreignKey:"completeUiSchemaId",primaryKey:!1,interface:"m2o",uiSchema:{type:"number",title:'{{t("completeUiSchema", { ns: "workflow" })}}',"x-component":"RemoteSelect","x-component-props":{fieldNames:{label:"title",value:"id"},service:{resource:"uiSchema"}}}}]},W="event-source";function U(e,r={}){return o.i18n.t(e,F(u({},r),{ns:[W,"core"]}))}const n=(e,r={})=>o.tval(e,u({ns:[W,"core"]},r)),X={type:"void",properties:{managerProvider:{type:"void","x-decorator":"TableBlockProvider","x-component":"CardItem","x-decorator-props":{collection:M,action:"list",params:{filter:{},except:["config"],appends:["workflow","uiSchema","completeUiSchema"]},rowKey:"id"},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{filter:{type:"void",title:'{{ t("Filter") }}',"x-action":"filter","x-component":"Filter.Action","x-use-component-props":"useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"},statusFilter:{type:"void","x-component":"EnabledStatusFilter","x-align":"left"},sync:{type:"void",title:n("Sync"),"x-component":"Action","x-component-props":{icon:"ReloadOutlined"},"x-use-component-props":"useSyncCustomEventSource"},refresh:{type:"void",title:'{{ t("Refresh") }}',"x-action":"refresh","x-component":"Action","x-settings":"actionSettings:refresh","x-component-props":{icon:"ReloadOutlined"},"x-use-component-props":"useRefreshActionProps"}}},table:{type:"array","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"}},properties:{id:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:10,align:"center"},properties:{id:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},workflow:{type:"void",title:'{{t("Workflow", { ns: "workflow" })}}',"x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:200},properties:{workflow:{"x-component":"ColumnWorkflow","x-read-pretty":!0}}},uiSchema:{type:"void",title:'{{t("uiSchema", { ns: "workflow" })}}',"x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:200},properties:{uiSchema:{"x-component":"ColumnUISchema","x-read-pretty":!0}}},completeUiSchema:{type:"void",title:'{{t("completeUiSchema", { ns: "workflow" })}}',"x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:200},properties:{completeUiSchema:{"x-component":"ColumnUISchema","x-read-pretty":!0}}},collectionName:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{collectionName:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},pathDesc:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{pathDesc:{type:"string","x-component":"CollectionField","x-component-props":{style:{overflow:"scroll"}},"x-read-pretty":!0}}}}}}}}};function Y(){const{refresh:e}=o.useDataBlockRequest(),r=o.useDataBlockResource();return{onClick(){return S(this,null,function*(){yield r.sync({name:"sync"}),e()})}}}const Z=()=>t.jsx(o.ExtendCollectionsProvider,{collections:[M],children:t.jsx(o.SchemaComponentOptions,{components:{ColumnWorkflow:$,ColumnUISchema:R},scope:{useSyncCustomEventSource:Y},children:t.jsx(w.WorkflowPane,{schema:X})})}),$=f.observer(()=>{var r,i;const e=f.useField();return`${(r=e==null?void 0:e.value)==null?void 0:r.title}-${(i=e==null?void 0:e.value)==null?void 0:i.id}`},{displayName:"ColumnWorkflow"}),R=f.observer(()=>{var r,i;const e=f.useField();return((r=e==null?void 0:e.value)==null?void 0:r.title)||`${(i=e==null?void 0:e.value)==null?void 0:i["x-uid"]}`},{displayName:"ColumnUISchema"});class P{}class ee extends P{constructor(){super(...arguments),this.title=n("App event"),this.description=n("Application-related events, such as beforeStop: before the application stops, afterStart: after the application starts"),this.options={eventName:{required:!0,type:"string",title:n("Event name"),"x-decorator":"FormItem","x-component":"Input","x-reactions":['{{(field) => { const collection = field.query("options.collection").get("value"); const event = field.query("options.collectionEvent").get("value"); field.value = `${collection || ""}.${event || ""}`; }}}']}}}}class oe extends P{constructor(){super(...arguments),this.title=n("Custom resource action"),this.description=n("for creating custom requests, try not to duplicate with other requests"),this.options={resourceName:{type:"string",title:n("Resource name"),"x-decorator":"FormItem","x-component":"Input"},actionName:{type:"string",title:n("Action name"),"x-decorator":"FormItem","x-component":"Input"},triggerOnAssociation:{type:"boolean",title:n("Trigger on association"),"x-decorator":"FormItem","x-component":"Checkbox"}}}}class te extends P{constructor(){super(...arguments),this.title=n("Database event"),this.description=n("Add specific hook events after creating, modifying, and deleting data tables"),this.options={collection:{type:"string",title:'{{t("Collection")}}',"x-decorator":"FormItem","x-component":"DataSourceCollectionCascader","x-decorator-props":{tooltip:n("Auxiliary selection, you can also customize the event name")}},collectionEvent:{title:n("Collection event"),"x-decorator":"FormItem","x-component":"Select",enum:[{label:n("Before Save (Create/Update)"),value:"beforeSave"},{label:n("Before Create"),value:"beforeCreate"},{label:n("Before Update"),value:"beforeUpdate"},{label:n("Before Delete"),value:"beforeDestroy"},{label:n("After Save (Create/Update)"),value:"afterSave"},{label:n("After Create"),value:"afterCreate"},{label:n("After Update"),value:"afterUpdate"},{label:n("After Delete"),value:"afterDestroy"},{label:n("After Save with Associations"),value:"afterSaveWithAssociations"},{label:n("After Create with Associations"),value:"afterCreateWithAssociations"},{label:n("After Update with Associations"),value:"afterUpdateWithAssociations"}],"x-decorator-props":{tooltip:n("Auxiliary selection, you can also customize the event name")}},eventName:{title:n("Event name"),required:!0,"x-decorator":"FormItem","x-component":"Input","x-reactions":['{{(field) => { const collection = field.query("options.collection").get("value"); const event = field.query("options.collectionEvent").get("value"); field.value = `${collection || ""}.${event || ""}`; }}}']}}}}class L extends P{constructor(r,i){super(),this.options={resourceName:{type:"string",title:n("Resource name"),"x-decorator":"FormItem","x-component":"Input"},actionName:{type:"string",title:n("Action name"),"x-decorator":"FormItem","x-component":"Input"},triggerOnAssociation:{type:"boolean",title:n("Trigger on association"),"x-decorator":"FormItem","x-component":"Checkbox"}},this.title=r,this.description=i}}const j=y.createContext({refresh:()=>{},activeKey:"",setActiveKey:()=>{}}),B=()=>y.useContext(j);function re({data:e}){const{label:r,color:i,options:c}=e,s=o.useCompile();return t.jsxs(o.Space,{direction:"vertical",children:[t.jsx(h.Tag,{color:i,children:s(r)}),t.jsx(h.Typography.Text,{type:"secondary",style:{whiteSpace:"normal"},children:s(c.description)})]})}const D={name:"webhooks",title:"webhooks",fields:[{type:"string",name:"name",interface:"input",uiSchema:{title:n("Name"),type:"string","x-component":"Input",required:!0}},{type:"boolean",name:"enabled",interface:"radioGroup",uiSchema:{title:n("Enabled"),type:"string",required:!0,enum:[{label:n("On"),value:!0,color:"#52c41a"},{label:n("Off"),value:!1}],"x-component":"Radio.Group","x-decorator":"FormItem",default:!1}},{type:"belongsToMany",name:"category",target:"webhookCategories",sourceKey:"id",foreignKey:"webhookId",otherKey:"categoryId",targetKey:"id",sortBy:"sort",through:"webhookCategory",collectionName:"webhooks",interface:"m2m",uiSchema:{title:`{{t("webhook Category", { ns: "${W}" })}}`,type:"array","x-component":"AssociationField","x-component-props":{fieldNames:{value:"id",label:"name"}}}},{type:"string",name:"description",interface:"textarea",uiSchema:{title:'{{t("Description")}}',type:"string","x-component":"Input.TextArea"}},{type:"string",name:"workflowKey",interface:"select",uiSchema:{title:n("Workflow"),type:"string","x-component":"WorkflowSelect","x-component-props":{buttonAction:"customize:triggerWorkflows",noCollection:!0,label:"title",value:"key"}}},{type:"string",name:"type",uiSchema:{title:n("Type"),"x-component":"Select","x-decorator":"FormItem",enum:"{{useTriggersOptions()}}","x-component-props":{optionRender:re,popupMatchSelectWidth:!0,listHeight:300}}},{type:"json",name:"options",interface:"object",uiSchema:{type:"object",title:n("Options"),"x-component":"TypeContainer"}},{type:"text",name:"code",interface:"textarea",uiSchema:{title:n("Code"),type:"string","x-component":"CodeMirror","x-component-props":{defaultValue:`// ctx.action.params can get user query
|
|
2
2
|
// ctx.action.params.values can get user body
|
|
3
3
|
// const { changed, data, error } = await ctx.getChanged(); can get changed fields and raw data
|
|
4
4
|
// ctx.originalBody can get action response data (available in resource after events)
|
|
5
5
|
// ctx.body to pass your data to workflow or to client who invoke this.
|
|
6
6
|
// ctx.body = ctx.action.params.values
|
|
7
7
|
// ctx.body = ctx.originalBody // use action response data
|
|
8
|
-
// ctx.body=ctx.model`}}},{type:"boolean",name:"effect",interface:"radioGroup",uiSchema:{title:n("Real effect"),type:"string",required:!0,enum:[{label:n("
|
|
8
|
+
// ctx.body=ctx.model`}}},{type:"boolean",name:"effect",interface:"radioGroup",uiSchema:{title:n("Real effect"),type:"string",required:!0,enum:[{label:n("Effective"),value:!0,color:"#52c41a"},{label:n("Ineffective"),value:!1,color:"#d9d9d9"}],"x-component":"Radio.Group","x-decorator":"FormItem",default:!1}},{name:"updatedAt",type:"date",interface:"updatedAt",uiSchema:{type:"datetime",title:n("Updated at"),"x-component":"DatePicker","x-component-props":{showTime:!0}}},{name:"updatedBy",type:"belongsTo",interface:"updatedBy",target:"users",targetKey:"id",foreignKey:"updatedById",collectionName:"webhooks",uiSchema:{type:"object",title:'{{t("Last updated by")}}',"x-component":"AssociationField","x-component-props":{fieldNames:{value:"id",label:"nickname"}},"x-read-pretty":!0}}]},ne={name:"webhookCategories",fields:[{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Name")}}',type:"string","x-component":"Input"}}]},ie=f.observer(e=>{const{value:r}=e,i=o.useCompile();return t.jsx(t.Fragment,{children:r==null?void 0:r.map(c=>t.jsx(h.Tag,{color:c.color,children:i(c==null?void 0:c.name)},c.name))})},{displayName:"WebhookCategory"}),ae=()=>{const e=f.useForm(),r=o.useActionContext(),{refresh:i}=B(),c=o.useAPIClient();return{run(){return S(this,null,function*(){yield e.submit();const m=E.cloneDeep(e.values);yield c.resource("webhookCategories").create({values:u({},m)}),r.setVisible(!1),yield e.reset(),i()})}}},ce=e=>t.jsx(se,u({},e)),se=e=>{const{scope:r,getContainer:i,children:c}=e,[s,m]=y.useState(!1),{t:l}=o.useTranslation();return t.jsxs(o.ActionContextProvider,{value:{visible:s,setVisible:m},children:[t.jsx("div",{onClick:()=>m(!0),title:l("Add category"),children:c||t.jsx(I.PlusOutlined,{})}),t.jsx(o.SchemaComponent,{schema:pe,components:{CollectionCategory:ie},scope:u({getContainer:i,useCancelAction:o.useCancelAction,createOnly:!0,useCreatewebhookCategry:ae},r)})]})},pe={type:"object",properties:{form:{type:"void","x-decorator":"Form","x-component":"Action.Modal",title:'{{ t("Add category") }}',"x-component-props":{width:520,getContainer:"{{ getContainer }}"},properties:{name:{type:"string",title:'{{t("Category name")}}',required:!0,"x-disabled":"{{ !createOnly }}","x-decorator":"FormItem","x-component":"Input"},color:{type:"string",title:'{{t("Color")}}',required:!1,"x-decorator":"FormItem","x-component":"ColorSelect"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useCreatewebhookCategry }}",style:{marginLeft:"8px"}}}}}}}}},le=()=>{const e=f.useForm(),r=o.useActionContext(),{refresh:i}=B(),c=o.useAPIClient(),{id:s}=o.useRecord();return{run(){return S(this,null,function*(){yield e.submit();const l=E.cloneDeep(e.values);yield c.resource("webhookCategories").update({filter:{id:s},values:u({},l)}),r.setVisible(!1),yield e.reset(),i()})}}},de=e=>{const r=o.useRecord(),i=o.useRequest(()=>Promise.resolve({data:E.cloneDeep(r)}),F(u({},e),{manual:!0})),c=o.useActionContext();return y.useEffect(()=>{c.visible&&i.run()},[c.visible]),i},ue=e=>t.jsx(me,u({},e)),me=e=>{const{scope:r,getContainer:i,item:c,children:s}=e,[m,l]=y.useState(!1),v=o.useCompile();return t.jsx(o.RecordProvider,{record:c,children:t.jsxs(o.ActionContextProvider,{value:{visible:m,setVisible:l},children:[t.jsx(t.Fragment,{children:s||t.jsx("span",{onClick:()=>l(!0),children:v('{{ t("Edit category") }}')})}),t.jsx(o.SchemaComponent,{schema:ye,scope:u({getContainer:i,useCancelAction:o.useCancelAction,createOnly:!0,useEditCategry:le,useValuesFromRecord:de},r)})]})})},ye={type:"object",properties:{form:{type:"void","x-decorator":"Form","x-decorator-props":{useValues:"{{ useValuesFromRecord }}"},"x-component":"Action.Modal",title:'{{ t("Edit category") }}',"x-component-props":{width:520,getContainer:"{{ getContainer }}"},properties:{name:{type:"string",title:'{{t("Category name")}}',required:!0,"x-disabled":"{{ !createOnly }}","x-decorator":"FormItem","x-component":"Input"},color:{type:"string",title:'{{t("Color")}}',required:!1,"x-decorator":"FormItem","x-component":"ColorSelect"},footer:{type:"void","x-component":"Action.Modal.Footer",properties:{action1:{title:'{{ t("Cancel") }}',"x-component":"Action","x-component-props":{useAction:"{{ useCancelAction }}"}},action2:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useEditCategry }}",style:{marginLeft:"8px"}}}}}}}}},xe=e=>t.jsx(o.SchemaComponent,{schema:{properties:e.options}}),K=y.createContext({});K.displayName="WorkflowTitleContext";const fe=()=>y.useContext(K),ge=({children:e})=>{var C,A;const r=o.useTableBlockContext(),i=o.useAPIClient(),[c,s]=y.useState({}),m=((A=(C=r==null?void 0:r.service)==null?void 0:C.data)==null?void 0:A.data)||[],l=y.useMemo(()=>{const b=m.map(x=>x.workflowKey).filter(x=>x&&x.trim()!=="");return Array.from(new Set(b)).sort()},[m]),v=y.useMemo(()=>l.join(","),[l]);return y.useEffect(()=>{if(l.length===0){s({});return}S(null,null,function*(){try{const{data:x}=yield i.request({url:"workflows:list",method:"get",params:{filter:{key:{$in:l}},fields:["id","key","title"],paginate:!1}}),N=(x==null?void 0:x.data)||[],p={};N.forEach(T=>{T.key&&(p[T.key]=T.title||T.key)}),s(p)}catch(x){console.error("Failed to fetch workflow titles:",x)}})},[v,i]),t.jsx(K.Provider,{value:c,children:e})},z=({onClick:e})=>{const r=o.useCollectionRecordData(),i=fe(),c=r.workflowKey?i[r.workflowKey]||r.workflowKey:"-",s=!!r.workflowKey;return t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,textAlign:"left"},children:[s&&e&&t.jsx(h.Tooltip,{title:"查看执行历史",children:t.jsx(h.Button,{type:"text",size:"small",icon:t.jsx(I.HistoryOutlined,{style:{color:"#1890ff"}}),onClick:e,style:{padding:0,minWidth:"auto",flexShrink:0}})}),t.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},title:c,children:c})]})},k=f.observable({value:"",item:{}}),he=c=>{var s=c,{params:e,filter:r={}}=s,i=q(s,["params","filter"]);const m=o.useCollectionRecordData(),l=F(u({},i),{params:F(u({},e),{filter:F(u({},e==null?void 0:e.filter),{key:m.workflowKey})})});return t.jsx(o.TableBlockProvider,u({},l))},be=()=>{const e=f.useForm(),r=o.useCollectionRecordData(),i=o.useDataBlockResource();return{onClick(){return S(this,null,function*(){const s=yield i.test({values:{body:JSON.parse(e.values.body||"{}"),params:JSON.parse(e.values.params||"{}"),name:r.name}});alert(JSON.stringify(s.data))})}}},ve=()=>{const{form:e}=o.useFormBlockProps();return k.value&&(e.values.category=[k.item]),{form:e}},G={name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem","x-collection-field":"webhooks.name","x-component-props":{}},category:{type:"array","x-component":"CollectionField","x-decorator":"FormItem","x-collection-field":"webhooks.category","x-component-props":{multiple:!0}},enabled:{type:"string","x-component":"CollectionField","x-decorator":"FormItem","x-collection-field":"webhooks.enabled","x-component-props":{}},workflowKey:{type:"string","x-component":"CollectionField","x-decorator":"FormItem","x-collection-field":"webhooks.workflowKey"},type:{type:"string","x-component":"CollectionField","x-decorator":"FormItem","x-collection-field":"webhooks.type"},options:{type:"object","x-component":"CollectionField","x-decorator":"FormItem","x-reactions":{dependencies:["type"],fulfill:{schema:{"x-component-props":"{{ useTypeOptions($deps[0]) }}"}}},"x-collection-field":"webhooks.options"},code:{type:"string","x-component":"CollectionField","x-decorator":"FormItem","x-decorator-props":{tooltip:`ctx.request
|
|
9
9
|
ctx.body
|
|
10
10
|
ctx.originalBody (action response data)
|
|
11
11
|
lib.JSON
|
|
12
12
|
lib.Math
|
|
13
|
-
lib.dayjs`},"x-collection-field":"webhooks.code"},effectConfig:{title:n("Effect config"),type:"string","x-component":"CodeMirror","x-component-props":{options:{readOnly:!0}},"x-decorator":"FormItem","x-decorator-props":{tooltip:n("The real effect of the server, not the preset configuration")},"x-collection-field":"webhooks.effectConfig"},description:{"x-component":"CollectionField","x-decorator":"FormItem"}},Ce={type:"void","x-acl-action-props":{skipScopeCheck:!0},"x-acl-action":"webhooks:create","x-decorator":"FormBlockProvider","x-use-decorator-props":"useCreateFormBlockDecoratorProps","x-decorator-props":{dataSource:"main",collection:D.name},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":"useCreateFormBlockProps",properties:u({actionBar:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:"var(--tb-spacing)"}},properties:{submit:{title:'{{t("Submit")}}',"x-action":"submit","x-component":"Action","x-use-component-props":"useCreateActionProps","x-component-props":{type:"primary",htmlType:"submit"},type:"void"}}}},z)}}},we={type:"void",title:'{{ t("Edit") }}',"x-action":"update","x-component":"Action.Link","x-component-props":{openMode:"drawer",icon:"EditOutlined"},"x-decorator":"ACLActionProvider",properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Container","x-component-props":{className:"tb-action-popup"},properties:{card:{type:"void","x-acl-action-props":{skipScopeCheck:!1},"x-acl-action":"webhooks:update","x-decorator":"FormBlockProvider","x-use-decorator-props":"useEditFormBlockDecoratorProps","x-decorator-props":{action:"get",dataSource:"main",collection:D,params:{appends:["category"]}},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":"useEditFormBlockProps",properties:u({actionBar:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:"var(--tb-spacing)"}},properties:{submit:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useUpdateActionProps","x-component-props":{type:"primary",htmlType:"submit"},"x-action-settings":{triggerWorkflows:[],onSuccess:{manualClose:!1,redirecting:!1,successMessage:'{{t("Updated successfully")}}'},isDeltaChanged:!1},type:"void"}}}},z)}}}}}}},ke={title:'{{ t("Delete") }}',"x-action":"destroy","x-component":"Action.Link","x-use-component-props":"useDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}},"x-action-settings":{triggerWorkflows:[]},"x-decorator":"ACLActionProvider",type:"void"},Se={type:"void",title:'{{ t("Test") }}',"x-action":"update","x-component":"Action.Link","x-component-props":{openMode:"drawer",icon:"EditOutlined"},"x-decorator":"ACLActionProvider",properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Container","x-component-props":{className:"tb-action-popup"},properties:{card:{type:"void","x-acl-action-props":{skipScopeCheck:!1},"x-acl-action":"webhooks:update","x-decorator":"FormBlockProvider","x-decorator-props":{action:"get",dataSource:"main",collection:D.name},"x-component":"CardItem",properties:{testForm:{type:"void","x-component":"FormV2",properties:{actionBar:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:"var(--tb-spacing)"}},properties:{submit:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useTestActionProps","x-component-props":{type:"primary",htmlType:"submit"},"x-action-settings":{triggerWorkflows:[],onSuccess:{manualClose:!1,redirecting:!1,successMessage:'{{t("Updated successfully")}}'},isDeltaChanged:!1},type:"void"}}},params:{type:"string","x-component":"CodeMirror","x-component-props":{defaultValue:"{}"},"x-decorator":"FormItem","x-decorator-props":{label:"query"}},body:{type:"string","x-component":"CodeMirror","x-component-props":{defaultValue:"{}"},"x-decorator":"FormItem","x-decorator-props":{label:"body"}}}}}}}}}};function Ae(e){const{isOver:r,setNodeRef:i}=g.useDroppable({id:e.id,data:e.data}),a=r?{color:"green"}:void 0;return t.jsx("div",{ref:i,style:a,children:e.children})}function Te(e){const{attributes:r,listeners:i,setNodeRef:a}=g.useDraggable({id:e.id,data:e.data});return t.jsx("div",F(u(u({ref:a},i),r),{children:t.jsx("div",{children:e.children})}))}const Fe=f.observer(({item:e})=>t.jsx(Ae,{id:e.id.toString(),data:e,children:t.jsx("div",{children:t.jsx(Te,{id:e.id.toString(),data:e,children:t.jsx(G,{item:e})})})}),{displayName:"TabTitle"}),Ie=f.observer(e=>{const r={collection:D,dataSource:"main",action:"list",params:{pageSize:20,appends:["updatedBy","category"],sort:["-createdAt"],filter:{}},rowKey:"id",showIndex:!0,dragSort:!1};return w.value&&(r.params.filter["category.id"]=[w.value]),t.jsx(o.TableBlockProvider,u(u({},e),r))}),G=({item:e})=>{const{t:r}=o.useTranslation(),i=o.useCompile();return t.jsxs(h.Space,{children:[t.jsx(h.Badge,{color:e.color}),r(i(e.name))]})},De=f.observer(e=>{const[r,i]=y.useState(null),{refresh:a}=B(),s=o.useAPIClient(),m=A=>k(null,null,function*(){const{active:b,over:x}=A;setTimeout(()=>{i(null)}),x&&x.id!==b.id&&(yield s.resource("webhookCategories").move({sourceId:b.id,targetId:x.id}),a())});function l(A){var b;i((b=A.active)==null?void 0:b.data.current)}const v=g.useSensor(g.MouseSensor,{activationConstraint:{distance:10}}),C=g.useSensors(v);return t.jsxs(g.DndContext,{sensors:C,onDragEnd:m,onDragStart:l,children:[e.children,t.jsx(g.DragOverlay,{children:r?t.jsx("span",{style:{whiteSpace:"nowrap"},children:t.jsx(G,{item:r})}):null})]})},{displayName:"DndProvider"}),Pe={type:"void",properties:{provider:{type:"void","x-decorator":Ie,"x-component":({children:e})=>{const r=o.useAPIClient(),[i,a]=y.useState([]),[s,m]=y.useState(!0),[l,v]=y.useState({tab:w.value,item:w.item}),C=o.useCompile(),{modal:A}=h.App.useApp(),b=y.useCallback(()=>k(null,null,function*(){m(!0);const{data:p}=yield r.request({url:"webhookCategories:list",params:{paginate:!1,sort:"sort"}});a(p.data),m(!1)}),[]);y.useEffect(()=>{b()},[b]);const x=p=>{A.confirm({title:C("{{t('Delete category')}}"),content:C("{{t('Are you sure you want to delete it?')}}"),onOk:()=>k(null,null,function*(){yield r.resource("webhookCategories").destroy({filter:{id:p}}),v({tab:"",item:{}}),w.value="",w.item={},b()})})},N=P.memoize(p=>({items:[{key:"edit",label:t.jsx(o.SchemaComponent,{schema:{type:"void",properties:{[f.uid()]:{"x-component":"EditWebhookCategory","x-component-props":{item:p}}}}})},{key:"delete",label:C("{{t('Delete category')}}"),onClick:()=>x(p.id)}]}));return t.jsx(L.Provider,{value:{refresh:b,activeKey:l.tab,setActiveKey:p=>v({tab:p,item:i.find(T=>T.id===p)})},children:t.jsx(De,{children:t.jsx(h.Tabs,{addIcon:t.jsx(o.SchemaComponent,{schema:{type:"void",properties:{addCategories:{type:"void",title:'{{ t("Add category") }}',"x-component":"AddWebhookCategory","x-component-props":{type:"primary"}}}}}),type:"editable-card",activeKey:l.tab,onChange:p=>{const T=i.find(Ve=>Ve.id===p);v({tab:p,item:T}),w.value=p,w.item=T,p===""&&b()},defaultActiveKey:l.tab||"",destroyInactiveTabPane:!0,tabBarStyle:{marginBottom:"0px"},items:[{id:"",name:Q("All"),closable:!1}].concat(i).filter(p=>p&&p.name!=null&&p.id!=null).map(p=>({label:p.id!==""?t.jsx("div",{"data-no-dnd":"true",children:t.jsx(Fe,{item:p})}):C(p.name),key:p.id,closable:p.closable,closeIcon:t.jsx(h.Dropdown,{menu:N(p),children:t.jsx(I.MenuOutlined,{role:"button","aria-label":C(p.name),style:{padding:8,margin:"-8px"}})}),children:t.jsx(o.CardItem,{children:t.jsx(ge,{children:e})})}))})})})},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:"var(--tb-spacing)"}},properties:{filter:{type:"void",title:'{{ t("Filter") }}',default:{$and:[{name:{$includes:""}}]},"x-action":"filter","x-component":"Filter.Action","x-use-component-props":"useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"},fuzzySearch:{type:"void","x-component":"FuzzySearchInput","x-align":"left"},refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-component-props":{icon:"ReloadOutlined"},"x-use-component-props":"useRefreshActionProps"},create:{type:"void","x-action":"create","x-acl-action":"create",title:"{{t('Add new')}}","x-component":"Action","x-decorator":"ACLActionProvider","x-component-props":{openMode:"drawer",type:"primary",component:"CreateRecordAction",icon:"PlusOutlined"},"x-align":"right","x-acl-action-props":{skipScopeCheck:!0},properties:{drawer:{type:"void",title:'{{ t("Add record") }}',"x-component":"Action.Container","x-component-props":{className:"tb-action-popup"},properties:{form:Ce}}}}}},alert:{type:"void","x-component":"Alert","x-use-component-props":"useShowAlertProps","x-component-props":{message:n("configuration has changed, please click the restart in the upper right corner, or configure the service with EVENT_SOURCE_REALTIME=1 to start in real time"),type:"warning",showIcon:!0}},table:{type:"array","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"}},properties:{nameColumn:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:50,sorter:!0},properties:{name:{"x-collection-field":"webhooks.name","x-component":"CollectionField","x-component-props":{ellipsis:!0},"x-read-pretty":!0,"x-decorator":null,"x-decorator-props":{labelStyle:{display:"none"}}}}},category:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{sorter:!0,width:20,align:"center"},properties:{category:{type:"array","x-collection-field":"webhooks.category","x-component":"CollectionField","x-component-props":{multiple:!0,mode:"Tag"},"x-read-pretty":!0}}},enabledColumn:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:20},properties:{enabled:{type:"boolean","x-collection-field":"webhooks.enabled","x-component":"CollectionField","x-component-props":{ellipsis:!0},"x-read-pretty":!0,"x-decorator":null,"x-decorator-props":{labelStyle:{display:"none"}}}}},workflowKeyColumn:{title:n("Workflow"),type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:20},properties:{workflowKey:{type:"string","x-component":"WorkflowKeyColumn","x-decorator":"OpenDrawer","x-decorator-props":{component:({onClick:e})=>t.jsx(j,{onClick:e})},properties:{drawer:S.executionSchema}}}},typeColumn:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:20,sorter:!0},properties:{type:{"x-collection-field":"webhooks.type","x-component":"CollectionField","x-component-props":{},"x-read-pretty":!0,"x-decorator":null,"x-decorator-props":{labelStyle:{display:"none"}}}}},effectColumn:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:20,sorter:!0},properties:{effect:{type:"boolean","x-collection-field":"webhooks.effect","x-component":"CollectionField","x-component-props":{ellipsis:!0},"x-read-pretty":!0,"x-decorator":null,"x-decorator-props":{labelStyle:{display:"none"}}}}},description:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{description:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},updatedAt:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{sorter:!0,width:20,align:"center",style:{display:"grid",placeItems:"center"}},properties:{updatedAt:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},updatedBy:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{sorter:!0,width:20,align:"center",style:{display:"grid",placeItems:"center"}},properties:{updatedBy:{type:"string","x-collection-field":"webhooks.updatedBy","x-component":"CollectionField","x-read-pretty":!0}}},actionColumn:{type:"void",title:'{{ t("Actions") }}',"x-decorator":"TableV2.Column.ActionBar","x-component":"TableV2.Column","x-component-props":{width:150,fixed:"right"},"x-action-column":"actions",properties:{space:{type:"void","x-component":"Space",properties:{editAction:we,deleteAction:ke,testAction:Se}}}}}}}}}},Ee=e=>{var a,s;const r=o.useDataBlockRequest(),i=(s=(a=r==null?void 0:r.data)==null?void 0:a.meta)==null?void 0:s.changed;return{style:F(u({},e.style),{visibility:i?"visible":"hidden"})}},Be=()=>{const e=o.usePlugin(K),r=[];for(const s of e.triggers.getKeys())r.push({label:e.triggers.get(s).title,description:e.triggers.get(s).description,value:s});const i=s=>{var m,l;return{options:(l=(m=e.triggers)==null?void 0:m.get(s))==null?void 0:l.options}},a=()=>{const s=o.useCompile();return Array.from(e.triggers.getEntities()).map(A=>{var[l,b]=A,x=b,{title:v}=x,C=q(x,["title"]);return{value:l,label:s(v),color:"gold",options:C}}).sort((l,v)=>l.label.localeCompare(v.label))};return t.jsx(o.ExtendCollectionsProvider,{collections:[D,ne],children:t.jsx(o.SchemaComponent,{name:"eventSource",schema:Pe,scope:{useTestActionProps:be,useTriggersOptions:a,useTypeOptions:i,ExecutionRetryAction:S.ExecutionRetryAction,useShowAlertProps:Ee,useWebhookCategoryContext:B,useCreateFormBlockProps:ve},components:{Alert:o.withDynamicSchemaProps(h.Alert),ExecutionStatusColumn:S.ExecutionStatusColumn,ExecutionResourceProvider:he,OpenDrawer:S.OpenDrawer,ExecutionLink:S.ExecutionLink,WorkflowSelect:o.WorkflowSelect,CodeMirror:d.CodeMirror,TypeContainer:xe,AddWebhookCategory:ae,EditWebhookCategory:ue,WorkflowKeyColumn:j}})})};class K extends o.Plugin{constructor(){super(...arguments),this.triggers=new d.Registry}load(){return k(this,null,function*(){this.triggers.register("resource",new oe),this.triggers.register("applicationEvent",new ee),this.triggers.register("databaseEvent",new te),this.triggers.register("beforeResource",new U(n("Resource action before event"),n("get user input and original data changes before operation, but the workflow is triggered before the resource operation, which is commonly used for data verification, etc."))),this.triggers.register("afterResource",new U(n("Resource action after event"),n("get user input and original data changes before operation, but the workflow is triggered after the resource operation, which is commonly used for specific association changes, etc."))),this.app.systemSettingsManager.add("business-components.custom-event-source",{title:n("Custom event source"),icon:"trigger",Component:Z,aclSnippet:"pm.business-components.custom-event-source"}),this.app.systemSettingsManager.add("business-components.event-source",{title:n("Event source"),icon:"trigger",Component:Be,sort:-100,aclSnippet:"pm.business-components.event-source"})})}}c.ModuleEventSourceClient=K,c.default=K,Object.defineProperties(c,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
13
|
+
lib.dayjs`},"x-collection-field":"webhooks.code"},effectConfig:{title:n("Effect config"),type:"string","x-component":"CodeMirror","x-component-props":{options:{readOnly:!0}},"x-decorator":"FormItem","x-decorator-props":{tooltip:n("The real effect of the server, not the preset configuration")},"x-collection-field":"webhooks.effectConfig"},description:{"x-component":"CollectionField","x-decorator":"FormItem"}},Ce={type:"void","x-acl-action-props":{skipScopeCheck:!0},"x-acl-action":"webhooks:create","x-decorator":"FormBlockProvider","x-use-decorator-props":"useCreateFormBlockDecoratorProps","x-decorator-props":{dataSource:"main",collection:D.name},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":"useCreateFormBlockProps",properties:u({actionBar:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:"var(--tb-spacing)"}},properties:{submit:{title:'{{t("Submit")}}',"x-action":"submit","x-component":"Action","x-use-component-props":"useCreateActionProps","x-component-props":{type:"primary",htmlType:"submit"},type:"void"}}}},G)}}},we={type:"void",title:'{{ t("Edit") }}',"x-action":"update","x-component":"Action.Link","x-component-props":{openMode:"drawer",icon:"EditOutlined"},"x-decorator":"ACLActionProvider",properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Container","x-component-props":{className:"tb-action-popup"},properties:{card:{type:"void","x-acl-action-props":{skipScopeCheck:!1},"x-acl-action":"webhooks:update","x-decorator":"FormBlockProvider","x-use-decorator-props":"useEditFormBlockDecoratorProps","x-decorator-props":{action:"get",dataSource:"main",collection:D,params:{appends:["category"]}},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":"useEditFormBlockProps",properties:u({actionBar:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:"var(--tb-spacing)"}},properties:{submit:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useUpdateActionProps","x-component-props":{type:"primary",htmlType:"submit"},"x-action-settings":{triggerWorkflows:[],onSuccess:{manualClose:!1,redirecting:!1,successMessage:'{{t("Updated successfully")}}'},isDeltaChanged:!1},type:"void"}}}},G)}}}}}}},ke={title:'{{ t("Delete") }}',"x-action":"destroy","x-component":"Action.Link","x-use-component-props":"useDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}},"x-action-settings":{triggerWorkflows:[]},"x-decorator":"ACLActionProvider",type:"void"},Se={type:"void",title:'{{ t("Test") }}',"x-action":"update","x-component":"Action.Link","x-component-props":{openMode:"drawer",icon:"EditOutlined"},"x-decorator":"ACLActionProvider",properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Container","x-component-props":{className:"tb-action-popup"},properties:{card:{type:"void","x-acl-action-props":{skipScopeCheck:!1},"x-acl-action":"webhooks:update","x-decorator":"FormBlockProvider","x-decorator-props":{action:"get",dataSource:"main",collection:D.name},"x-component":"CardItem",properties:{testForm:{type:"void","x-component":"FormV2",properties:{actionBar:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:"var(--tb-spacing)"}},properties:{submit:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useTestActionProps","x-component-props":{type:"primary",htmlType:"submit"},"x-action-settings":{triggerWorkflows:[],onSuccess:{manualClose:!1,redirecting:!1,successMessage:'{{t("Updated successfully")}}'},isDeltaChanged:!1},type:"void"}}},params:{type:"string","x-component":"CodeMirror","x-component-props":{defaultValue:"{}"},"x-decorator":"FormItem","x-decorator-props":{label:"query"}},body:{type:"string","x-component":"CodeMirror","x-component-props":{defaultValue:"{}"},"x-decorator":"FormItem","x-decorator-props":{label:"body"}}}}}}}}}};function Ae(e){const{isOver:r,setNodeRef:i}=g.useDroppable({id:e.id,data:e.data}),c=r?{color:"green"}:void 0;return t.jsx("div",{ref:i,style:c,children:e.children})}function Te(e){const{attributes:r,listeners:i,setNodeRef:c}=g.useDraggable({id:e.id,data:e.data});return t.jsx("div",F(u(u({ref:c},i),r),{children:t.jsx("div",{children:e.children})}))}const Fe=f.observer(({item:e})=>t.jsx(Ae,{id:e.id.toString(),data:e,children:t.jsx("div",{children:t.jsx(Te,{id:e.id.toString(),data:e,children:t.jsx(J,{item:e})})})}),{displayName:"TabTitle"}),Ie=f.observer(e=>{const r={collection:D,dataSource:"main",action:"list",params:{pageSize:20,appends:["updatedBy","category"],sort:["-createdAt"],filter:{}},rowKey:"id",showIndex:!0,dragSort:!1};return k.value&&(r.params.filter["category.id"]=[k.value]),t.jsx(o.TableBlockProvider,u(u({},e),r))}),J=({item:e})=>{const{t:r}=o.useTranslation(),i=o.useCompile();return t.jsxs(h.Space,{children:[t.jsx(h.Badge,{color:e.color}),r(i(e.name))]})},De=f.observer(e=>{const[r,i]=y.useState(null),{refresh:c}=B(),s=o.useAPIClient(),m=A=>S(null,null,function*(){const{active:b,over:x}=A;setTimeout(()=>{i(null)}),x&&x.id!==b.id&&(yield s.resource("webhookCategories").move({sourceId:b.id,targetId:x.id}),c())});function l(A){var b;i((b=A.active)==null?void 0:b.data.current)}const v=g.useSensor(g.MouseSensor,{activationConstraint:{distance:10}}),C=g.useSensors(v);return t.jsxs(g.DndContext,{sensors:C,onDragEnd:m,onDragStart:l,children:[e.children,t.jsx(g.DragOverlay,{children:r?t.jsx("span",{style:{whiteSpace:"nowrap"},children:t.jsx(J,{item:r})}):null})]})},{displayName:"DndProvider"}),Ee={type:"void",properties:{provider:{type:"void","x-decorator":Ie,"x-component":({children:e})=>{const r=o.useAPIClient(),[i,c]=y.useState([]),[s,m]=y.useState(!0),[l,v]=y.useState({tab:k.value,item:k.item}),C=o.useCompile(),{modal:A}=h.App.useApp(),b=y.useCallback(()=>S(null,null,function*(){m(!0);const{data:p}=yield r.request({url:"webhookCategories:list",params:{paginate:!1,sort:"sort"}});c(p.data),m(!1)}),[]);y.useEffect(()=>{b()},[b]);const x=p=>{A.confirm({title:C("{{t('Delete category')}}"),content:C("{{t('Are you sure you want to delete it?')}}"),onOk:()=>S(null,null,function*(){yield r.resource("webhookCategories").destroy({filter:{id:p}}),v({tab:"",item:{}}),k.value="",k.item={},b()})})},N=E.memoize(p=>({items:[{key:"edit",label:t.jsx(o.SchemaComponent,{schema:{type:"void",properties:{[f.uid()]:{"x-component":"EditWebhookCategory","x-component-props":{item:p}}}}})},{key:"delete",label:C("{{t('Delete category')}}"),onClick:()=>x(p.id)}]}));return t.jsx(j.Provider,{value:{refresh:b,activeKey:l.tab,setActiveKey:p=>v({tab:p,item:i.find(T=>T.id===p)})},children:t.jsx(De,{children:t.jsx(h.Tabs,{addIcon:t.jsx(o.SchemaComponent,{schema:{type:"void",properties:{addCategories:{type:"void",title:'{{ t("Add category") }}',"x-component":"AddWebhookCategory","x-component-props":{type:"primary"}}}}}),type:"editable-card",activeKey:l.tab,onChange:p=>{const T=i.find(Ve=>Ve.id===p);v({tab:p,item:T}),k.value=p,k.item=T,p===""&&b()},defaultActiveKey:l.tab||"",destroyInactiveTabPane:!0,tabBarStyle:{marginBottom:"0px"},items:[{id:"",name:U("All"),closable:!1}].concat(i).filter(p=>p&&p.name!=null&&p.id!=null).map(p=>({label:p.id!==""?t.jsx("div",{"data-no-dnd":"true",children:t.jsx(Fe,{item:p})}):C(p.name),key:p.id,closable:p.closable,closeIcon:t.jsx(h.Dropdown,{menu:N(p),children:t.jsx(I.MenuOutlined,{role:"button","aria-label":C(p.name),style:{padding:8,margin:"-8px"}})}),children:t.jsx(o.CardItem,{children:t.jsx(ge,{children:e})})}))})})})},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:"var(--tb-spacing)"}},properties:{filter:{type:"void",title:'{{ t("Filter") }}',default:{$and:[{name:{$includes:""}}]},"x-action":"filter","x-component":"Filter.Action","x-use-component-props":"useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"},fuzzySearch:{type:"void","x-component":"FuzzySearchInput","x-align":"left"},statusFilter:{type:"void","x-component":"EnabledStatusFilter","x-align":"left"},refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-component-props":{icon:"ReloadOutlined"},"x-use-component-props":"useRefreshActionProps"},create:{type:"void","x-action":"create","x-acl-action":"create",title:"{{t('Add new')}}","x-component":"Action","x-decorator":"ACLActionProvider","x-component-props":{openMode:"drawer",type:"primary",component:"CreateRecordAction",icon:"PlusOutlined"},"x-align":"right","x-acl-action-props":{skipScopeCheck:!0},properties:{drawer:{type:"void",title:'{{ t("Add record") }}',"x-component":"Action.Container","x-component-props":{className:"tb-action-popup"},properties:{form:Ce}}}}}},alert:{type:"void","x-component":"Alert","x-use-component-props":"useShowAlertProps","x-component-props":{message:n("configuration has changed, please click the restart in the upper right corner, or configure the service with EVENT_SOURCE_REALTIME=1 to start in real time"),type:"warning",showIcon:!0}},table:{type:"array","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"}},properties:{nameColumn:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:50,sorter:!0},properties:{name:{"x-collection-field":"webhooks.name","x-component":"CollectionField","x-component-props":{ellipsis:!0},"x-read-pretty":!0,"x-decorator":null,"x-decorator-props":{labelStyle:{display:"none"}}}}},category:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:20,align:"center"},properties:{category:{type:"array","x-collection-field":"webhooks.category","x-component":"CollectionField","x-component-props":{multiple:!0,mode:"Tag"},"x-read-pretty":!0}}},enabledColumn:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:20,align:"center"},title:n("Status"),properties:{enabled:{type:"void","x-component":"EnabledToggle","x-component-props":{resource:"webhooks"}}}},workflowKeyColumn:{title:n("Workflow"),type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:20},properties:{workflowKey:{type:"string","x-component":"WorkflowKeyColumn","x-decorator":"OpenDrawer","x-decorator-props":{component:({onClick:e})=>t.jsx(z,{onClick:e})},properties:{drawer:w.executionSchema}}}},typeColumn:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:20,sorter:!0},properties:{type:{"x-collection-field":"webhooks.type","x-component":"CollectionField","x-component-props":{},"x-read-pretty":!0,"x-decorator":null,"x-decorator-props":{labelStyle:{display:"none"}}}}},effectColumn:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{width:20,sorter:!0,align:"center"},title:n("Real effect"),properties:{effect:{type:"boolean","x-collection-field":"webhooks.effect","x-component":"CollectionField","x-component-props":{ellipsis:!0},"x-read-pretty":!0,"x-decorator":null,"x-decorator-props":{labelStyle:{display:"none"}}}}},description:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{description:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},updatedAt:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{sorter:!0,width:20,align:"center",style:{display:"grid",placeItems:"center"}},properties:{updatedAt:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},updatedBy:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column","x-component-props":{sorter:!0,width:20,align:"center",style:{display:"grid",placeItems:"center"}},properties:{updatedBy:{type:"string","x-collection-field":"webhooks.updatedBy","x-component":"CollectionField","x-read-pretty":!0}}},actionColumn:{type:"void",title:'{{ t("Actions") }}',"x-decorator":"TableV2.Column.ActionBar","x-component":"TableV2.Column","x-component-props":{width:150,fixed:"right"},"x-action-column":"actions",properties:{space:{type:"void","x-component":"Space",properties:{editAction:we,deleteAction:ke,testAction:Se}}}}}}}}}},Pe=e=>{var c,s;const r=o.useDataBlockRequest(),i=(s=(c=r==null?void 0:r.data)==null?void 0:c.meta)==null?void 0:s.changed;return{style:F(u({},e.style),{visibility:i?"visible":"hidden"})}},Be=()=>{const e=o.usePlugin(O),r=[];for(const s of e.triggers.getKeys())r.push({label:e.triggers.get(s).title,description:e.triggers.get(s).description,value:s});const i=s=>{var m,l;return{options:(l=(m=e.triggers)==null?void 0:m.get(s))==null?void 0:l.options}},c=()=>{const s=o.useCompile();return Array.from(e.triggers.getEntities()).map(A=>{var[l,b]=A,x=b,{title:v}=x,C=q(x,["title"]);return{value:l,label:s(v),color:"gold",options:C}}).sort((l,v)=>l.label.localeCompare(v.label))};return t.jsx(o.ExtendCollectionsProvider,{collections:[D,ne],children:t.jsx(o.SchemaComponent,{name:"eventSource",schema:Ee,scope:{useTestActionProps:be,useTriggersOptions:c,useTypeOptions:i,ExecutionRetryAction:w.ExecutionRetryAction,useShowAlertProps:Pe,useWebhookCategoryContext:B,useCreateFormBlockProps:ve,lang:U},components:{Alert:o.withDynamicSchemaProps(h.Alert),ExecutionStatusColumn:w.ExecutionStatusColumn,ExecutionResourceProvider:he,OpenDrawer:w.OpenDrawer,ExecutionLink:w.ExecutionLink,WorkflowSelect:o.WorkflowSelect,CodeMirror:d.CodeMirror,TypeContainer:xe,AddWebhookCategory:ce,EditWebhookCategory:ue,WorkflowKeyColumn:z,EnabledStatusFilter:w.EnabledStatusFilter}})})};class O extends o.Plugin{constructor(){super(...arguments),this.triggers=new d.Registry}load(){return S(this,null,function*(){this.triggers.register("resource",new oe),this.triggers.register("applicationEvent",new ee),this.triggers.register("databaseEvent",new te),this.triggers.register("beforeResource",new L(n("Resource action before event"),n("get user input and original data changes before operation, but the workflow is triggered before the resource operation, which is commonly used for data verification, etc."))),this.triggers.register("afterResource",new L(n("Resource action after event"),n("get user input and original data changes before operation, but the workflow is triggered after the resource operation, which is commonly used for specific association changes, etc."))),this.app.systemSettingsManager.add("business-components.custom-event-source",{title:n("Custom event source"),icon:"trigger",Component:Z,aclSnippet:"pm.business-components.custom-event-source"}),this.app.systemSettingsManager.add("business-components.event-source",{title:n("Event source"),icon:"trigger",Component:Be,sort:-100,aclSnippet:"pm.business-components.event-source"})})}}a.ModuleEventSourceClient=O,a.default=O,Object.defineProperties(a,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/dist/externalVersion.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
-
"@tachybase/client": "1.6.
|
|
3
|
-
"@tego/client": "1.
|
|
4
|
-
"@tego/server": "1.
|
|
5
|
-
"@tachybase/module-workflow": "1.6.
|
|
6
|
-
"@tachybase/schema": "1.
|
|
2
|
+
"@tachybase/client": "1.6.1",
|
|
3
|
+
"@tego/client": "1.6.0-alpha.9",
|
|
4
|
+
"@tego/server": "1.6.0-alpha.9",
|
|
5
|
+
"@tachybase/module-workflow": "1.6.1",
|
|
6
|
+
"@tachybase/schema": "1.6.0-alpha.9",
|
|
7
7
|
"react": "18.3.1",
|
|
8
|
-
"@ant-design/icons": "
|
|
8
|
+
"@ant-design/icons": "6.1.0",
|
|
9
9
|
"@dnd-kit/core": "6.3.1",
|
|
10
10
|
"antd": "5.22.5",
|
|
11
11
|
"lodash": "4.17.21",
|
package/dist/locale/en-US.json
CHANGED
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
"Before Save (Create/Update)": "Before Save (Create/Update)",
|
|
15
15
|
"Before Update": "Before Update",
|
|
16
16
|
"Custom event source": "Custom event source",
|
|
17
|
+
"Effective": "Effective",
|
|
17
18
|
"Event source": "Event source",
|
|
19
|
+
"Ineffective": "Ineffective",
|
|
18
20
|
"Resource action after event": "Resource action after event",
|
|
19
21
|
"Resource action before event": "Resource action before event",
|
|
20
22
|
"Sync": "Sync",
|
package/dist/locale/zh-CN.json
CHANGED
|
@@ -22,9 +22,11 @@
|
|
|
22
22
|
"Custon event name": "自定义事件名称",
|
|
23
23
|
"Database event": "数据库事件",
|
|
24
24
|
"Effect config": "生效配置",
|
|
25
|
+
"Effective": "生效",
|
|
25
26
|
"Event name": "事件名称",
|
|
26
27
|
"Event source": "事件源",
|
|
27
28
|
"Finally executed on": "最后执行于",
|
|
29
|
+
"Ineffective": "失效",
|
|
28
30
|
"Real effect": "是否生效",
|
|
29
31
|
"Resource": "资源",
|
|
30
32
|
"Resource action after event": "资源操作后事件",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Context, Next } from '@tego/server';
|
|
2
2
|
export declare class CustomEventSourceController {
|
|
3
|
-
sync(
|
|
4
|
-
searchParent(
|
|
3
|
+
sync(ctx: Context, next: Next): Promise<void>;
|
|
4
|
+
searchParent(ctx: Context, currentUiSchema: any, currentSchemaList: [string, string][], transaction: any): Promise<any>;
|
|
5
5
|
}
|
|
@@ -73,15 +73,15 @@ class CustomEventSourceController {
|
|
|
73
73
|
constructor() {
|
|
74
74
|
__runInitializers(_init, 5, this);
|
|
75
75
|
}
|
|
76
|
-
async sync(
|
|
76
|
+
async sync(ctx, next) {
|
|
77
77
|
var _a;
|
|
78
|
-
const transaction = await
|
|
78
|
+
const transaction = await ctx.db.sequelize.transaction();
|
|
79
79
|
const query = `
|
|
80
80
|
SELECT * FROM public."uiSchemas"
|
|
81
81
|
WHERE schema::jsonb -> 'x-action-settings' IS NOT NULL
|
|
82
82
|
AND jsonb_array_length((schema::jsonb -> 'x-action-settings' -> 'triggerWorkflows')::jsonb) > 0;
|
|
83
83
|
`;
|
|
84
|
-
const uiSchemaList = await
|
|
84
|
+
const uiSchemaList = await ctx.db.sequelize.query(query, {
|
|
85
85
|
transaction,
|
|
86
86
|
type: import_sequelize.QueryTypes.SELECT
|
|
87
87
|
});
|
|
@@ -91,10 +91,10 @@ class CustomEventSourceController {
|
|
|
91
91
|
const schemaTitle = schema["title"];
|
|
92
92
|
const triggerWorkflows = schema["x-action-settings"]["triggerWorkflows"];
|
|
93
93
|
currentSchemaList.push([xuid, schemaTitle]);
|
|
94
|
-
const completeUiSchemaRecord = await this.searchParent(
|
|
94
|
+
const completeUiSchemaRecord = await this.searchParent(ctx, currentUiSchema, currentSchemaList, transaction);
|
|
95
95
|
for (const triggerWorkflow of triggerWorkflows) {
|
|
96
96
|
const { workflowKey } = triggerWorkflow;
|
|
97
|
-
const RepoWorkflow =
|
|
97
|
+
const RepoWorkflow = ctx.db.getRepository("workflows");
|
|
98
98
|
const targetWorkflow = await RepoWorkflow.findOne({
|
|
99
99
|
filter: {
|
|
100
100
|
key: workflowKey
|
|
@@ -105,7 +105,7 @@ class CustomEventSourceController {
|
|
|
105
105
|
const { "x-uid": completeUiSchemaId, schema: schema2 } = completeUiSchemaRecord;
|
|
106
106
|
const collectionName = (_a = schema2 == null ? void 0 : schema2["x-decorator-props"]) == null ? void 0 : _a["collection"];
|
|
107
107
|
const pathDesc = currentSchemaList.map(([key, title]) => `${title}(${key})`).reverse().join("->");
|
|
108
|
-
const RepoWorkflowsManager = import_server.utils.getRepositoryFromParams(
|
|
108
|
+
const RepoWorkflowsManager = import_server.utils.getRepositoryFromParams(ctx);
|
|
109
109
|
const workflowsManagerRecord = await RepoWorkflowsManager.findOne({
|
|
110
110
|
filter: {
|
|
111
111
|
pathDesc
|
|
@@ -144,9 +144,9 @@ class CustomEventSourceController {
|
|
|
144
144
|
}
|
|
145
145
|
await next();
|
|
146
146
|
}
|
|
147
|
-
async searchParent(
|
|
147
|
+
async searchParent(ctx, currentUiSchema, currentSchemaList, transaction) {
|
|
148
148
|
const { "x-uid": childKey } = currentUiSchema;
|
|
149
|
-
const RepoParent =
|
|
149
|
+
const RepoParent = ctx.db.getRepository("uiSchemaTreePath");
|
|
150
150
|
const parentUiSchemaList = await RepoParent.find({
|
|
151
151
|
filter: {
|
|
152
152
|
descendant: childKey
|
|
@@ -158,7 +158,7 @@ class CustomEventSourceController {
|
|
|
158
158
|
if (ancestor === childKey) {
|
|
159
159
|
continue;
|
|
160
160
|
}
|
|
161
|
-
const RepoUiSchema =
|
|
161
|
+
const RepoUiSchema = ctx.db.getRepository("uiSchemas");
|
|
162
162
|
const parentUiSchemaRecord = await RepoUiSchema.findOne({
|
|
163
163
|
filter: {
|
|
164
164
|
"x-uid": ancestor
|
|
@@ -85,7 +85,7 @@ class AppEventTrigger extends import_Trigger.EventSourceTrigger {
|
|
|
85
85
|
if (!workflowKey) {
|
|
86
86
|
return;
|
|
87
87
|
}
|
|
88
|
-
const pluginWorkflow = this.app.
|
|
88
|
+
const pluginWorkflow = this.app.pm.get(import_module_workflow.PluginWorkflow);
|
|
89
89
|
const wfRepo = this.app.db.getRepository("workflows");
|
|
90
90
|
const wf = await wfRepo.findOne({ filter: { key: workflowKey, enabled: true } });
|
|
91
91
|
await pluginWorkflow.trigger(wf, { data: webhookCtx.body }, {});
|
|
@@ -65,7 +65,7 @@ class DatabaseEventTrigger extends import_Trigger.EventSourceTrigger {
|
|
|
65
65
|
if (!workflowKey) {
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
|
-
const pluginWorkflow = this.app.
|
|
68
|
+
const pluginWorkflow = this.app.pm.get(import_module_workflow.PluginWorkflow);
|
|
69
69
|
const wfRepo = this.app.db.getRepository("workflows");
|
|
70
70
|
const wf = await wfRepo.findOne({ filter: { key: workflowKey, enabled: true } });
|
|
71
71
|
const result = await pluginWorkflow.trigger(
|
|
@@ -109,7 +109,7 @@ function getChanged(ctx) {
|
|
|
109
109
|
try {
|
|
110
110
|
const params = import_lodash.default.cloneDeep(ctx.action.params);
|
|
111
111
|
const fieldsObj = {};
|
|
112
|
-
const app = ctx.
|
|
112
|
+
const app = ctx.tego;
|
|
113
113
|
const c = app.mainDataSource.collectionManager.getCollection(ctx.action.resourceName);
|
|
114
114
|
const collectionRepo = ctx.db.getRepository(c.name);
|
|
115
115
|
const fields = c.getFields();
|
|
@@ -155,7 +155,7 @@ function getChanged(ctx) {
|
|
|
155
155
|
changed
|
|
156
156
|
};
|
|
157
157
|
} catch (err) {
|
|
158
|
-
ctx.
|
|
158
|
+
ctx.logger.error(err);
|
|
159
159
|
return {
|
|
160
160
|
error: err.stack
|
|
161
161
|
};
|
|
@@ -184,7 +184,7 @@ class WebhookController {
|
|
|
184
184
|
user: UserModel.build(currentUser).desensitize(),
|
|
185
185
|
roleName: currentRole
|
|
186
186
|
};
|
|
187
|
-
const pluginWorkflow = ctx.
|
|
187
|
+
const pluginWorkflow = ctx.tego.getPlugin(import_module_workflow.PluginWorkflow);
|
|
188
188
|
const repo = ctx.db.getRepository(import_constants.EVENT_SOURCE_COLLECTION);
|
|
189
189
|
const webhook = await repo.findOne(where);
|
|
190
190
|
const webhookCtx = {
|
|
@@ -248,7 +248,7 @@ class WebhookController {
|
|
|
248
248
|
});
|
|
249
249
|
return webhookCtx.body;
|
|
250
250
|
} catch (err) {
|
|
251
|
-
ctx.
|
|
251
|
+
ctx.tego.logger.error(err);
|
|
252
252
|
return null;
|
|
253
253
|
}
|
|
254
254
|
}
|
|
@@ -262,7 +262,7 @@ class WebhookController {
|
|
|
262
262
|
user: UserModel.build(currentUser).desensitize(),
|
|
263
263
|
roleName: currentRole
|
|
264
264
|
};
|
|
265
|
-
const pluginWorkflow = ctx.
|
|
265
|
+
const pluginWorkflow = ctx.tego.getPlugin(import_module_workflow.PluginWorkflow);
|
|
266
266
|
const wfRepo = ctx.db.getRepository("workflows");
|
|
267
267
|
const wf = await wfRepo.findOne({ filter: { key: action.workflowKey, enabled: true } });
|
|
268
268
|
return await pluginWorkflow.trigger(wf, { data: body, ...userInfo }, { httpContext: ctx });
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tachybase/module-event-source",
|
|
3
3
|
"displayName": "Event Source",
|
|
4
|
-
"version": "1.6.
|
|
4
|
+
"version": "1.6.1",
|
|
5
5
|
"description": "Registering and managing custom event sources.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"System management"
|
|
@@ -9,19 +9,19 @@
|
|
|
9
9
|
"main": "dist/server/index.js",
|
|
10
10
|
"dependencies": {},
|
|
11
11
|
"devDependencies": {
|
|
12
|
-
"@ant-design/icons": "^
|
|
12
|
+
"@ant-design/icons": "^6.1.0",
|
|
13
13
|
"@dnd-kit/core": "^6.3.1",
|
|
14
|
-
"@tachybase/schema": "1.
|
|
15
|
-
"@tachybase/test": "1.
|
|
16
|
-
"@tego/client": "1.
|
|
17
|
-
"@tego/server": "1.
|
|
14
|
+
"@tachybase/schema": "1.6.0-alpha.9",
|
|
15
|
+
"@tachybase/test": "1.6.0-alpha.9",
|
|
16
|
+
"@tego/client": "1.6.0-alpha.9",
|
|
17
|
+
"@tego/server": "1.6.0-alpha.9",
|
|
18
18
|
"@types/lodash": "^4.17.20",
|
|
19
19
|
"antd": "5.22.5",
|
|
20
20
|
"dayjs": "1.11.13",
|
|
21
21
|
"lodash": "4.17.21",
|
|
22
22
|
"sequelize": "6.37.5",
|
|
23
|
-
"@tachybase/client": "1.6.
|
|
24
|
-
"@tachybase/module-workflow": "1.6.
|
|
23
|
+
"@tachybase/client": "1.6.1",
|
|
24
|
+
"@tachybase/module-workflow": "1.6.1"
|
|
25
25
|
},
|
|
26
26
|
"description.zh-CN": "注册和管理自定义事件源",
|
|
27
27
|
"displayName.zh-CN": "事件源",
|