├── src
├── main
│ ├── resources
│ │ ├── public
│ │ │ ├── editor-app
│ │ │ │ ├── libs
│ │ │ │ │ ├── es5-shim-15.3.4.5
│ │ │ │ │ │ ├── .gitignore
│ │ │ │ │ │ ├── tests
│ │ │ │ │ │ │ ├── helpers
│ │ │ │ │ │ │ │ ├── h.js
│ │ │ │ │ │ │ │ ├── h-matchers.js
│ │ │ │ │ │ │ │ └── h-kill.js
│ │ │ │ │ │ │ ├── lib
│ │ │ │ │ │ │ │ ├── jasmine_favicon.png
│ │ │ │ │ │ │ │ └── jasmine.css
│ │ │ │ │ │ │ ├── spec
│ │ │ │ │ │ │ │ └── s-number.js
│ │ │ │ │ │ │ ├── index.min.html
│ │ │ │ │ │ │ └── index.html
│ │ │ │ │ │ ├── .bower.json
│ │ │ │ │ │ ├── LICENSE
│ │ │ │ │ │ ├── package.json
│ │ │ │ │ │ ├── CONTRIBUTORS.md
│ │ │ │ │ │ └── CHANGES
│ │ │ │ │ ├── bootstrap_3.1.1
│ │ │ │ │ │ └── fonts
│ │ │ │ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ │ │ ├── angular-translate-storage-cookie
│ │ │ │ │ │ ├── angular-translate-storage-cookie.min.js
│ │ │ │ │ │ ├── angular-translate-storage-cookie.js
│ │ │ │ │ │ └── .bower.json
│ │ │ │ │ ├── angular-translate-loader-static-files
│ │ │ │ │ │ ├── angular-translate-loader-static-files.min.js
│ │ │ │ │ │ ├── .bower.json
│ │ │ │ │ │ └── angular-translate-loader-static-files.js
│ │ │ │ │ ├── angular-cookies_1.2.13
│ │ │ │ │ │ ├── angular-cookies.min.js
│ │ │ │ │ │ └── angular-cookies.min.js.map
│ │ │ │ │ ├── json3_3.2.6
│ │ │ │ │ │ └── LICENSE
│ │ │ │ │ ├── jquery.autogrow-textarea.js
│ │ │ │ │ ├── angular-resource_1.2.13
│ │ │ │ │ │ └── angular-resource.min.js
│ │ │ │ │ ├── mousetrap-1.4.5.min.js
│ │ │ │ │ ├── path_parser.js
│ │ │ │ │ ├── angular-route_1.2.13
│ │ │ │ │ │ └── angular-route.min.js
│ │ │ │ │ ├── angular-sanitize_1.2.13
│ │ │ │ │ │ └── angular-sanitize.min.js
│ │ │ │ │ └── angular-dragdrop.min-1.0.3.js
│ │ │ │ ├── images
│ │ │ │ │ ├── delete.png
│ │ │ │ │ ├── logo.png
│ │ │ │ │ ├── wrench.png
│ │ │ │ │ ├── loading.gif
│ │ │ │ │ ├── logo-2x.png
│ │ │ │ │ ├── bpmn-error.png
│ │ │ │ │ ├── bpmn-warning.png
│ │ │ │ │ ├── datadefinition.png
│ │ │ │ │ ├── nw-handle-dark.gif
│ │ │ │ │ ├── se-handle-dark.gif
│ │ │ │ │ └── shapemenu_highlight.png
│ │ │ │ ├── popups
│ │ │ │ │ ├── icon-template.html
│ │ │ │ │ ├── select-shape.html
│ │ │ │ │ ├── unsaved-changes.html
│ │ │ │ │ └── save-model.html
│ │ │ │ ├── fonts
│ │ │ │ │ ├── activiti-admin-webfont.eot
│ │ │ │ │ ├── activiti-admin-webfont.ttf
│ │ │ │ │ ├── activiti-admin-webfont.woff
│ │ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ │ └── glyphicons-halflings-regular.woff
│ │ │ │ ├── stencilsets
│ │ │ │ │ └── bpmn2.0
│ │ │ │ │ │ └── icons
│ │ │ │ │ │ ├── diagram.png
│ │ │ │ │ │ ├── activity
│ │ │ │ │ │ ├── task.png
│ │ │ │ │ │ ├── subprocess.png
│ │ │ │ │ │ ├── list
│ │ │ │ │ │ │ ├── type.camel.png
│ │ │ │ │ │ │ ├── type.mule.png
│ │ │ │ │ │ │ ├── type.send.png
│ │ │ │ │ │ │ ├── type.shell.png
│ │ │ │ │ │ │ ├── type.user.png
│ │ │ │ │ │ │ ├── type.manual.png
│ │ │ │ │ │ │ ├── type.receive.png
│ │ │ │ │ │ │ ├── type.script.png
│ │ │ │ │ │ │ ├── type.service.png
│ │ │ │ │ │ │ └── type.business.rule.png
│ │ │ │ │ │ ├── event.subprocess.png
│ │ │ │ │ │ ├── expanded.subprocess.png
│ │ │ │ │ │ └── event.subprocess.collapsed.png
│ │ │ │ │ │ ├── catching
│ │ │ │ │ │ ├── error.png
│ │ │ │ │ │ ├── timer.png
│ │ │ │ │ │ ├── cancel.png
│ │ │ │ │ │ ├── message.png
│ │ │ │ │ │ ├── signal.png
│ │ │ │ │ │ └── compensation.png
│ │ │ │ │ │ ├── endevent
│ │ │ │ │ │ ├── error.png
│ │ │ │ │ │ ├── none.png
│ │ │ │ │ │ ├── cancel.png
│ │ │ │ │ │ └── terminate.png
│ │ │ │ │ │ ├── swimlane
│ │ │ │ │ │ ├── lane.png
│ │ │ │ │ │ └── pool.png
│ │ │ │ │ │ ├── throwing
│ │ │ │ │ │ ├── none.png
│ │ │ │ │ │ └── signal.png
│ │ │ │ │ │ ├── gateway
│ │ │ │ │ │ ├── inclusive.png
│ │ │ │ │ │ ├── parallel.png
│ │ │ │ │ │ ├── eventbased.png
│ │ │ │ │ │ └── exclusive.databased.png
│ │ │ │ │ │ ├── startevent
│ │ │ │ │ │ ├── error.png
│ │ │ │ │ │ ├── none.png
│ │ │ │ │ │ ├── signal.png
│ │ │ │ │ │ ├── timer.png
│ │ │ │ │ │ └── message.png
│ │ │ │ │ │ ├── connector
│ │ │ │ │ │ ├── messageflow.png
│ │ │ │ │ │ ├── sequenceflow.png
│ │ │ │ │ │ ├── association.undirected.png
│ │ │ │ │ │ └── association.unidirectional.png
│ │ │ │ │ │ ├── dataobject
│ │ │ │ │ │ └── data.store.png
│ │ │ │ │ │ └── artifact
│ │ │ │ │ │ └── text.annotation.png
│ │ │ │ ├── configuration
│ │ │ │ │ ├── properties
│ │ │ │ │ │ ├── boolean-property-template.html
│ │ │ │ │ │ ├── fields-write-template.html
│ │ │ │ │ │ ├── assignment-write-template.html
│ │ │ │ │ │ ├── in-parameters-write-template.html
│ │ │ │ │ │ ├── out-parameters-write-template.html
│ │ │ │ │ │ ├── task-listeners-write-template.html
│ │ │ │ │ │ ├── text-property-write-template.html
│ │ │ │ │ │ ├── event-listeners-write-template.html
│ │ │ │ │ │ ├── form-properties-write-template.html
│ │ │ │ │ │ ├── execution-listeners-write-template.html
│ │ │ │ │ │ ├── fields-display-template.html
│ │ │ │ │ │ ├── message-definitions-write-template.html
│ │ │ │ │ │ ├── sequenceflow-order-write-template.html
│ │ │ │ │ │ ├── signal-definitions-write-template.html
│ │ │ │ │ │ ├── condition-expression-write-template.html
│ │ │ │ │ │ ├── condition-expression-display-template.html
│ │ │ │ │ │ ├── sequenceflow-order-display-template.html
│ │ │ │ │ │ ├── subprocess-reference-display-template.html
│ │ │ │ │ │ ├── subprocess-reference-write-template.html
│ │ │ │ │ │ ├── in-parameters-display-template.html
│ │ │ │ │ │ ├── message-definitions-display-template.html
│ │ │ │ │ │ ├── out-parameters-display-template.html
│ │ │ │ │ │ ├── signal-definitions-display-template.html
│ │ │ │ │ │ ├── task-listeners-display-template.html
│ │ │ │ │ │ ├── form-properties-display-template.html
│ │ │ │ │ │ ├── event-listeners-display-template.html
│ │ │ │ │ │ ├── execution-listeners-display-template.html
│ │ │ │ │ │ ├── default-value-display-template.html
│ │ │ │ │ │ ├── multiinstance-property-write-template.html
│ │ │ │ │ │ ├── string-property-write-mode-template.html
│ │ │ │ │ │ ├── signal-property-write-template.html
│ │ │ │ │ │ ├── message-property-write-template.html
│ │ │ │ │ │ ├── text-popup.html
│ │ │ │ │ │ ├── assignment-display-template.html
│ │ │ │ │ │ ├── feedback-popup.html
│ │ │ │ │ │ ├── condition-expression-popup.html
│ │ │ │ │ │ ├── sequenceflow-order-popup.html
│ │ │ │ │ │ ├── subprocess-reference-popup.html
│ │ │ │ │ │ ├── message-definitions-popup.html
│ │ │ │ │ │ ├── assignment-popup.html
│ │ │ │ │ │ ├── signal-definitions-popup.html
│ │ │ │ │ │ ├── in-parameters-popup.html
│ │ │ │ │ │ ├── out-parameters-popup.html
│ │ │ │ │ │ └── fields-popup.html
│ │ │ │ │ ├── toolbar-custom-actions.js
│ │ │ │ │ ├── properties-custom-controllers.js
│ │ │ │ │ ├── properties-multiinstance-controller.js
│ │ │ │ │ ├── url-config.js
│ │ │ │ │ ├── properties-signal-scope-controller.js
│ │ │ │ │ ├── properties-message-scope-controller.js
│ │ │ │ │ ├── properties-condition-expression-controller.js
│ │ │ │ │ └── properties-default-controllers.js
│ │ │ │ ├── partials
│ │ │ │ │ ├── root-stencil-item-template.html
│ │ │ │ │ └── stencil-item-template.html
│ │ │ │ ├── app-cfg.js
│ │ │ │ ├── editor-config.js
│ │ │ │ ├── header-controller.js
│ │ │ │ ├── editor-controller.js
│ │ │ │ ├── plugins.xml
│ │ │ │ └── editor
│ │ │ │ │ └── css
│ │ │ │ │ └── editor.css
│ │ │ └── diagram-viewer
│ │ │ │ ├── images
│ │ │ │ ├── bg.png
│ │ │ │ ├── breadcrumbs.png
│ │ │ │ ├── checker-bg.png
│ │ │ │ └── deployer
│ │ │ │ │ ├── send.png
│ │ │ │ │ ├── timer.png
│ │ │ │ │ ├── user.png
│ │ │ │ │ ├── manual.png
│ │ │ │ │ ├── receive.png
│ │ │ │ │ ├── script.png
│ │ │ │ │ ├── service.png
│ │ │ │ │ ├── business_rule.png
│ │ │ │ │ ├── error_catch.png
│ │ │ │ │ ├── error_throw.png
│ │ │ │ │ ├── message_catch.png
│ │ │ │ │ ├── message_throw.png
│ │ │ │ │ ├── signal_catch.png
│ │ │ │ │ ├── signal_throw.png
│ │ │ │ │ └── blue
│ │ │ │ │ └── message_catch.png
│ │ │ │ ├── js
│ │ │ │ ├── Polyline.js
│ │ │ │ ├── jstools.js
│ │ │ │ ├── ActivitiRest.js
│ │ │ │ ├── ActivityImpl.js
│ │ │ │ └── jquery
│ │ │ │ │ ├── jquery.progressbar.js
│ │ │ │ │ └── jquery.asyncqueue.js
│ │ │ │ └── style.css
│ │ ├── processes
│ │ │ ├── demand.png
│ │ │ ├── demand.zip
│ │ │ └── processes.rar
│ │ └── application.yml
│ └── java
│ │ └── com
│ │ └── yfny
│ │ └── activityapi
│ │ ├── ActivityApiApplication.java
│ │ ├── utils
│ │ ├── UtilMisc.java
│ │ ├── BpmsActivityTypeEnum.java
│ │ ├── DeleteTaskCmd.java
│ │ ├── SetFLowNodeAndGoCmd.java
│ │ └── ActivitiUtils.java
│ │ ├── service
│ │ ├── FlowDiagramService.java
│ │ ├── ModelService.java
│ │ └── FlowTaskService.java
│ │ ├── exception
│ │ └── GlobalExceptionHandler.java
│ │ └── controller
│ │ ├── model
│ │ ├── StencilsetRestResource.java
│ │ └── ModelController.java
│ │ ├── FlowDiagramController.java
│ │ └── TaskController.java
└── test
│ └── java
│ └── com
│ └── yfny
│ └── activityapi
│ └── ActivitiyApiApplicationTests.java
├── .mvn
└── wrapper
│ ├── maven-wrapper.jar
│ ├── maven-wrapper.properties
│ └── MavenWrapperDownloader.java
├── README.md
├── .gitignore
└── pom.xml
/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 |
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # SpringBoot集成Activity工作流
2 | 1.SpringBoot版本2.1.3, Activity版本6.0, 数据库Mysql
3 |
4 | 2.添加了Activity-Modeler在线编辑工具
5 |
--------------------------------------------------------------------------------
/src/main/resources/processes/demand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/processes/demand.png
--------------------------------------------------------------------------------
/src/main/resources/processes/demand.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/processes/demand.zip
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h.js:
--------------------------------------------------------------------------------
1 | function implement() {
2 | throw 'Not implemented';
3 | }
--------------------------------------------------------------------------------
/src/main/resources/processes/processes.rar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/processes/processes.rar
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
2 |
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/bg.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/images/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/images/delete.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/images/logo.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/images/wrench.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/images/wrench.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/js/Polyline.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/js/Polyline.js
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/images/loading.gif
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/images/logo-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/images/logo-2x.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/images/bpmn-error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/images/bpmn-error.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/images/bpmn-warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/images/bpmn-warning.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/breadcrumbs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/breadcrumbs.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/checker-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/checker-bg.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/images/datadefinition.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/images/datadefinition.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/images/nw-handle-dark.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/images/nw-handle-dark.gif
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/images/se-handle-dark.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/images/se-handle-dark.gif
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/popups/icon-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/send.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/send.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/timer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/timer.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/user.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/manual.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/manual.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/receive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/receive.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/script.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/script.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/service.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/service.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/fonts/activiti-admin-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/fonts/activiti-admin-webfont.eot
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/fonts/activiti-admin-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/fonts/activiti-admin-webfont.ttf
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/images/shapemenu_highlight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/images/shapemenu_highlight.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/fonts/activiti-admin-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/fonts/activiti-admin-webfont.woff
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/business_rule.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/business_rule.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/error_catch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/error_catch.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/error_throw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/error_throw.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/message_catch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/message_catch.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/message_throw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/message_throw.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/signal_catch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/signal_catch.png
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/signal_throw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/signal_throw.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/diagram.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/images/deployer/blue/message_catch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/diagram-viewer/images/deployer/blue/message_catch.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/task.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/catching/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/catching/error.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/catching/timer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/catching/timer.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/endevent/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/endevent/error.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/endevent/none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/endevent/none.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/swimlane/lane.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/swimlane/lane.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/swimlane/pool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/swimlane/pool.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/throwing/none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/throwing/none.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/catching/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/catching/cancel.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/catching/message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/catching/message.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/catching/signal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/catching/signal.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/endevent/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/endevent/cancel.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/gateway/inclusive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/gateway/inclusive.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/gateway/parallel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/gateway/parallel.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/startevent/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/startevent/error.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/startevent/none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/startevent/none.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/startevent/signal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/startevent/signal.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/startevent/timer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/startevent/timer.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/throwing/signal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/throwing/signal.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/subprocess.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/subprocess.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/endevent/terminate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/endevent/terminate.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/gateway/eventbased.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/gateway/eventbased.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/startevent/message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/startevent/message.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/boolean-property-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine_favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine_favicon.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/catching/compensation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/catching/compensation.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/connector/messageflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/connector/messageflow.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/connector/sequenceflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/connector/sequenceflow.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/dataobject/data.store.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/dataobject/data.store.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/fields-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.camel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.camel.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.mule.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.mule.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.send.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.send.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.shell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.shell.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.user.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/artifact/text.annotation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/artifact/text.annotation.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.manual.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.manual.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.receive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.receive.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.script.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.script.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.service.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.service.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/gateway/exclusive.databased.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/gateway/exclusive.databased.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/assignment-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/expanded.subprocess.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/expanded.subprocess.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/in-parameters-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/out-parameters-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/task-listeners-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/text-property-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.business.rule.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.business.rule.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/connector/association.undirected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/connector/association.undirected.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/event-listeners-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/form-properties-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/execution-listeners-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/fields-display-template.html:
--------------------------------------------------------------------------------
1 |
2 | {{'PROPERTY.FIELDS' | translate:property.value.fields}}
3 | {{'PROPERTY.FIELDS.EMPTY' | translate}}
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/message-definitions-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/sequenceflow-order-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/signal-definitions-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.collapsed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.collapsed.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/connector/association.unidirectional.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Edison-Yu/SpringBoot-Activity/HEAD/src/main/resources/public/editor-app/stencilsets/bpmn2.0/icons/connector/association.unidirectional.png
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/condition-expression-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/condition-expression-display-template.html:
--------------------------------------------------------------------------------
1 | {{property.value|limitTo:20}}
2 | {{'PROPERTY.SEQUENCEFLOW.CONDITION.NO-CONDITION-DISPLAY' | translate}}
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/sequenceflow-order-display-template.html:
--------------------------------------------------------------------------------
1 |
2 | PROPERTY.SEQUENCEFLOW.ORDER.NOT.EMPTY
3 | PROPERTY.SEQUENCEFLOW.ORDER.EMPTY
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/subprocess-reference-display-template.html:
--------------------------------------------------------------------------------
1 |
2 | {{property.value.name}}
3 | PROPERTY.SUBPROCESSREFERENCE.EMPTY
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/subprocess-reference-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/in-parameters-display-template.html:
--------------------------------------------------------------------------------
1 |
2 | {{'PROPERTY.INPARAMETERS.VALUE' | translate:property.value.inParameters}}
3 | PROPERTY.INPARAMETERS.EMPTY
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/message-definitions-display-template.html:
--------------------------------------------------------------------------------
1 | {{'PROPERTY.MESSAGEDEFINITIONS.DISPLAY' | translate:property.value}}
2 | PROPERTY.MESSAGEDEFINITIONS.EMPTY
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/out-parameters-display-template.html:
--------------------------------------------------------------------------------
1 |
2 | {{'PROPERTY.OUTPARAMETERS.VALUE' | translate:property.value.outParameters}}
3 | PROPERTY.OUTPARAMETERS.EMPTY
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/signal-definitions-display-template.html:
--------------------------------------------------------------------------------
1 |
2 | {{'PROPERTY.SIGNALDEFINITIONS.DISPLAY' | translate:property.value}}
3 | PROPERTY.SIGNALDEFINITIONS.EMPTY
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/task-listeners-display-template.html:
--------------------------------------------------------------------------------
1 |
2 | {{'PROPERTY.TASKLISTENERS.VALUE' | translate:property.value.taskListeners}}
3 | PROPERTY.TASKLISTENERS.EMPTY
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/form-properties-display-template.html:
--------------------------------------------------------------------------------
1 |
2 | {{'PROPERTY.FORMPROPERTIES.VALUE' | translate:property.value.formProperties}}
3 | PROPERTY.FORMPROPERTIES.EMPTY
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/event-listeners-display-template.html:
--------------------------------------------------------------------------------
1 |
2 | {{'PROPERTY.EVENTLISTENERS.DISPLAY' | translate:property.value.eventListeners}}
3 | PROPERTY.EVENTLISTENERS.EMPTY
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/execution-listeners-display-template.html:
--------------------------------------------------------------------------------
1 |
2 | {{'PROPERTY.EXECUTIONLISTENERS.DISPLAY' | translate:property.value.executionListeners}}
3 | PROPERTY.EXECUTIONLISTENERS.EMPTY
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/default-value-display-template.html:
--------------------------------------------------------------------------------
1 |
2 | {{property.value|limitTo:20}}
3 | ...
4 | PROPERTY.EMPTY
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/multiinstance-property-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | None
5 | Parallel
6 | Sequential
7 |
8 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/string-property-write-mode-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/signal-property-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/message-property-write-template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 |
4 | ### STS ###
5 | .apt_generated
6 | .classpath
7 | .factorypath
8 | .project
9 | .settings
10 | .springBeans
11 | .sts4-cache
12 |
13 | ### IntelliJ IDEA ###
14 | .idea
15 | *.iws
16 | *.iml
17 | *.ipr
18 |
19 | ### NetBeans ###
20 | /nbproject/private/
21 | /nbbuild/
22 | /dist/
23 | /nbdist/
24 | /.nb-gradle/
25 | /build/
26 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * angular-translate - v2.4.2 - 2014-10-21
3 | * http://github.com/angular-translate/angular-translate
4 | * Copyright (c) 2014 ; Licensed MIT
5 | */
6 | angular.module("pascalprecht.translate").factory("$translateCookieStorage",["$cookieStore",function(a){var b={get:function(b){return a.get(b)},set:function(b,c){a.put(b,c)}};return b}]);
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "es5-shim",
3 | "homepage": "https://github.com/es-shims/es5-shim",
4 | "version": "2.1.0",
5 | "_release": "2.1.0",
6 | "_resolution": {
7 | "type": "version",
8 | "tag": "v2.1.0",
9 | "commit": "07da727ff7db2a3a25d6bc25d13e374b3bbc99c2"
10 | },
11 | "_source": "git://github.com/es-shims/es5-shim.git",
12 | "_target": "~2.1.0",
13 | "_originalSource": "es5-shim"
14 | }
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/partials/root-stencil-item-template.html:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 | {{group.name}}
11 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-number.js:
--------------------------------------------------------------------------------
1 | describe('Number', function () {
2 | 'use strict';
3 |
4 | describe('toFixed', function () {
5 | it('should convert numbers correctly', function () {
6 | expect((0.00008).toFixed(3)).toBe('0.000');
7 | expect((0.9).toFixed(0)).toBe('1');
8 | expect((1.255).toFixed(2)).toBe('1.25');
9 | expect((1843654265.0774949).toFixed(5)).toBe('1843654265.07749');
10 | expect((1000000000000000128).toFixed(0)).toBe('1000000000000000128');
11 | });
12 | });
13 |
14 | });
15 |
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/js/jstools.js:
--------------------------------------------------------------------------------
1 | if (typeof(console) == "undefined") {
2 | var console = {
3 | info: function(){},
4 | warn: function(){},
5 | error: function(){},
6 | log: function(){},
7 | time: function(){},
8 | timeEnd: function(){}
9 | };
10 | }
11 |
12 | if(!Array.isArray) {
13 | Array.isArray = function (vArg) {
14 | return Object.prototype.toString.call(vArg) === "[object Array]";
15 | };
16 | }
17 |
18 | if (!Object.isSVGElement) {
19 | Object.isSVGElement = function(vArg) {
20 | var str = Object.prototype.toString.call(vArg);
21 | return (str.indexOf("[object SVG") == 0);
22 | };
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * angular-translate - v2.4.2 - 2014-10-21
3 | * http://github.com/angular-translate/angular-translate
4 | * Copyright (c) 2014 ; Licensed MIT
5 | */
6 | angular.module('pascalprecht.translate').factory('$translateCookieStorage', [
7 | '$cookieStore',
8 | function ($cookieStore) {
9 | var $translateCookieStorage = {
10 | get: function (name) {
11 | return $cookieStore.get(name);
12 | },
13 | set: function (name, value) {
14 | $cookieStore.put(name, value);
15 | }
16 | };
17 | return $translateCookieStorage;
18 | }
19 | ]);
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * angular-translate - v2.4.2 - 2014-10-21
3 | * http://github.com/angular-translate/angular-translate
4 | * Copyright (c) 2014 ; Licensed MIT
5 | */
6 | angular.module("pascalprecht.translate").factory("$translateStaticFilesLoader",["$q","$http",function(a,b){return function(c){if(!c||!angular.isString(c.prefix)||!angular.isString(c.suffix))throw new Error("Couldn't load static files, no prefix or suffix specified!");var d=a.defer();return b(angular.extend({url:[c.prefix,c.key,c.suffix].join(""),method:"GET",params:""},c.$http)).success(function(a){d.resolve(a)}).error(function(){d.reject(c.key)}),d.promise}}]);
--------------------------------------------------------------------------------
/src/main/resources/application.yml:
--------------------------------------------------------------------------------
1 | spring:
2 | # 数据库配置
3 | datasource:
4 | driver-class-name: com.mysql.jdbc.Driver
5 | url: "jdbc:mysql://127.0.0.1:3306/activity?characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8"
6 | username: root
7 | password: root
8 | jpa:
9 | show-sql: true
10 | hibernate:
11 | ddl-auto: update
12 | main:
13 | allow-bean-definition-overriding: true
14 | # 端口配置
15 | server:
16 | tomcat:
17 | uri-encoding: UTF-8
18 | servlet:
19 | session:
20 | timeout: 10
21 | port: 8080
22 | activiti:
23 | # 自动部署验证设置:true-开启(默认)、false-关闭
24 | check-process-definitions: false
25 | server:
26 | servlet:
27 | context-path: "/activityApi"
28 |
--------------------------------------------------------------------------------
/src/main/java/com/yfny/activityapi/ActivityApiApplication.java:
--------------------------------------------------------------------------------
1 | package com.yfny.activityapi;
2 |
3 | import org.activiti.spring.boot.SecurityAutoConfiguration;
4 | import org.springframework.boot.SpringApplication;
5 | import org.springframework.boot.autoconfigure.SpringBootApplication;
6 | import org.springframework.transaction.annotation.EnableTransactionManagement;
7 |
8 | /**
9 | * 启动类
10 | */
11 | //这里要屏蔽SecurityAutoConfiguration.class,不然登陆Activity-Modeler的时候要输入账号密码
12 | @SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
13 | @EnableTransactionManagement//起用事务
14 | public class ActivityApiApplication {
15 |
16 | public static void main(String[] args) {
17 | SpringApplication.run(ActivityApiApplication.class, args);
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/angular-translate-loader-static-files/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-translate-loader-static-files",
3 | "version": "0.1.6",
4 | "main": "./angular-translate-loader-static-files.js",
5 | "dependencies": {
6 | "angular": "1.0.8",
7 | "angular-translate": "~1.1.1"
8 | },
9 | "homepage": "https://github.com/PascalPrecht/bower-angular-translate-loader-static-files",
10 | "_release": "0.1.6",
11 | "_resolution": {
12 | "type": "version",
13 | "tag": "0.1.6",
14 | "commit": "eaac546d29d6cde45873e6bad9d18cdff071d983"
15 | },
16 | "_source": "git://github.com/PascalPrecht/bower-angular-translate-loader-static-files.git",
17 | "_target": "0.1.6",
18 | "_originalSource": "angular-translate-loader-static-files"
19 | }
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/angular-translate-storage-cookie/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-translate-storage-cookie",
3 | "version": "0.1.6",
4 | "main": "./angular-translate-storage-cookie.js",
5 | "dependencies": {
6 | "angular": "1.0.8",
7 | "angular-cookies": "1.0.8",
8 | "angular-translate": "~1.1.1"
9 | },
10 | "homepage": "https://github.com/PascalPrecht/bower-angular-translate-storage-cookie",
11 | "_release": "0.1.6",
12 | "_resolution": {
13 | "type": "version",
14 | "tag": "0.1.6",
15 | "commit": "fc9ea3275f0f9bf0a60ca073b58488d934a348ac"
16 | },
17 | "_source": "git://github.com/PascalPrecht/bower-angular-translate-storage-cookie.git",
18 | "_target": "0.1.6",
19 | "_originalSource": "angular-translate-storage-cookie"
20 | }
--------------------------------------------------------------------------------
/src/main/java/com/yfny/activityapi/utils/UtilMisc.java:
--------------------------------------------------------------------------------
1 | package com.yfny.activityapi.utils;
2 |
3 | import java.util.HashMap;
4 | import java.util.Map;
5 |
6 | /**
7 | *
8 | * Created by jinboYu on 2019/3/13
9 | */
10 | public class UtilMisc {
11 |
12 | public static Map toMap(String flowId, V1 value1, String activityStartTime, V2 value2) {
13 | return populateMap(new HashMap(), flowId, value1, activityStartTime, value2);
14 | }
15 | @SuppressWarnings("unchecked")
16 | private static Map populateMap(Map map, Object... data) {
17 | for (int i = 0; i < data.length;) {
18 | map.put((String) data[i++], (V) data[i++]);
19 | }
20 | return map;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/text-popup.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/assignment-display-template.html:
--------------------------------------------------------------------------------
1 | {{'PROPERTY.ASSIGNMENT.ASSIGNEE_DISPLAY' | translate:property.value.assignment }}
2 | {{'PROPERTY.ASSIGNMENT.CANDIDATE_USERS_DISPLAY' | translate:property.value.assignment.candidateUsers}}
3 | {{'PROPERTY.ASSIGNMENT.CANDIDATE_GROUPS_DISPLAY' | translate:property.value.assignment.candidateGroups}}
4 | PROPERTY.ASSIGNMENT.EMPTY
--------------------------------------------------------------------------------
/src/main/java/com/yfny/activityapi/service/FlowDiagramService.java:
--------------------------------------------------------------------------------
1 | package com.yfny.activityapi.service;
2 |
3 | import org.springframework.transaction.annotation.Propagation;
4 | import org.springframework.transaction.annotation.Transactional;
5 |
6 | import java.io.InputStream;
7 |
8 | /**
9 | * 流程图相关Service
10 | *
11 | * Created by jinboYu on 2019/3/26
12 | */
13 | @Transactional(propagation= Propagation.REQUIRED,rollbackFor=Exception.class)
14 | public interface FlowDiagramService {
15 |
16 | /**
17 | * 获取历史节点流程图
18 | * 生成的流程图会高亮历史节点到当前的节点
19 | * @param taskId 任务ID
20 | * @return
21 | */
22 | InputStream getResourceDiagramInputStream(String taskId);
23 |
24 |
25 | /**
26 | * 根据当前流程实例ID获取流程图片流文件
27 | * 生成的流程图图片只高亮当前任务的节点
28 | * @param taskId 任务ID
29 | * @return
30 | */
31 | InputStream getDiagram(String taskId);
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/feedback-popup.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.2.13
3 | (c) 2010-2014 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(p,f,n){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(d,b){var c={},g={},h,k=!1,l=f.copy,m=f.isUndefined;b.addPollFn(function(){var a=b.cookies();h!=a&&(h=a,l(a,g),l(a,c),k&&d.$apply())})();k=!0;d.$watch(function(){var a,e,d;for(a in g)m(c[a])&&b.cookies(a,n);for(a in c)(e=c[a],f.isString(e))?e!==g[a]&&(b.cookies(a,e),d=!0):f.isDefined(g[a])?c[a]=g[a]:delete c[a];if(d)for(a in e=b.cookies(),c)c[a]!==e[a]&&(m(e[a])?delete c[a]:c[a]=e[a])});
7 | return c}]).factory("$cookieStore",["$cookies",function(d){return{get:function(b){return(b=d[b])?f.fromJson(b):b},put:function(b,c){d[b]=f.toJson(c)},remove:function(b){delete d[b]}}}])})(window,window.angular);
8 | //# sourceMappingURL=angular-cookies.min.js.map
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/popups/select-shape.html:
--------------------------------------------------------------------------------
1 |
2 |
21 |
--------------------------------------------------------------------------------
/src/main/java/com/yfny/activityapi/exception/GlobalExceptionHandler.java:
--------------------------------------------------------------------------------
1 | package com.yfny.activityapi.exception;
2 |
3 | import org.slf4j.Logger;
4 | import org.slf4j.LoggerFactory;
5 | import org.springframework.web.bind.annotation.ControllerAdvice;
6 | import org.springframework.web.bind.annotation.ExceptionHandler;
7 | import org.springframework.web.bind.annotation.ResponseBody;
8 |
9 | import javax.servlet.http.HttpServletRequest;
10 |
11 | /**
12 | * 统一异常处理机制
13 | * Created by jisongZhou on 2019/2/18.
14 | **/
15 |
16 | @ControllerAdvice
17 | public class GlobalExceptionHandler {
18 |
19 | private static Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
20 |
21 | @ExceptionHandler(value = Exception.class)
22 | @ResponseBody
23 | public String handException(HttpServletRequest req, Exception e) throws Exception {
24 | logger.error("报错信息:" + e.getMessage(), e);
25 | return "10005," + e.getMessage();
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/toolbar-custom-actions.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Activiti Modeler component part of the Activiti project
3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved.
4 | *
5 | * This library is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU Lesser General Public
7 | * License as published by the Free Software Foundation; either
8 | * version 2.1 of the License, or (at your option) any later version.
9 | *
10 | * This library is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * Lesser General Public License for more details.
14 |
15 | * You should have received a copy of the GNU Lesser General Public
16 | * License along with this library; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties-custom-controllers.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Activiti Modeler component part of the Activiti project
3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved.
4 | *
5 | * This library is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU Lesser General Public
7 | * License as published by the Free Software Foundation; either
8 | * version 2.1 of the License, or (at your option) any later version.
9 | *
10 | * This library is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * Lesser General Public License for more details.
14 |
15 | * You should have received a copy of the GNU Lesser General Public
16 | * License along with this library; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 |
--------------------------------------------------------------------------------
/src/main/java/com/yfny/activityapi/utils/BpmsActivityTypeEnum.java:
--------------------------------------------------------------------------------
1 | package com.yfny.activityapi.utils;
2 |
3 | /**
4 | *
5 | * Created by jinboYu on 2019/3/13
6 | */
7 | public enum BpmsActivityTypeEnum {
8 | START_EVENT("startEvent", "开始事件"),
9 | END_EVENT("endEvent", "结束事件"),
10 | USER_TASK("userTask", "用户任务"),
11 | EXCLUSIVE_GATEWAY("exclusiveGateway", "排他网关"),
12 | PARALLEL_GATEWAY("parallelGateway", "并行网关"),
13 | INCLUSIVE_GATEWAY("inclusiveGateway", "包含网关");
14 |
15 | private String type;
16 | private String name;
17 |
18 | private BpmsActivityTypeEnum(String type, String name) {
19 | this.type = type;
20 | this.name = name;
21 | }
22 |
23 | public String getType() {
24 | return type;
25 | }
26 | public void setType(String type) {
27 | this.type = type;
28 | }
29 | public String getName() {
30 | return name;
31 | }
32 | public void setName(String name) {
33 | this.name = name;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/popups/unsaved-changes.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-matchers.js:
--------------------------------------------------------------------------------
1 | beforeEach(function() {
2 | this.addMatchers({
3 | toExactlyMatch: function(expected) {
4 | var a1, a2,
5 | l, i,
6 | key,
7 | actual = this.actual;
8 |
9 | var getKeys = function(o) {
10 | var a = [];
11 | for(key in o) {
12 | if(o.hasOwnProperty(key)) {
13 | a.push(key);
14 | }
15 | }
16 | return a;
17 | }
18 | a1 = getKeys(actual);
19 | a2 = getKeys(expected);
20 |
21 | l = a1.length;
22 | if(l !== a2.length) {
23 | return false;
24 | }
25 | for(i = 0; i < l; i++) {
26 | key = a1[i];
27 | expect(key).toEqual(a2[i]);
28 | expect(actual[key]).toEqual(expected[key]);
29 | }
30 |
31 | return true;
32 | }
33 | })
34 | });
35 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * angular-translate - v2.4.2 - 2014-10-21
3 | * http://github.com/angular-translate/angular-translate
4 | * Copyright (c) 2014 ; Licensed MIT
5 | */
6 | angular.module('pascalprecht.translate').factory('$translateStaticFilesLoader', [
7 | '$q',
8 | '$http',
9 | function ($q, $http) {
10 | return function (options) {
11 | if (!options || (!angular.isString(options.prefix) || !angular.isString(options.suffix))) {
12 | throw new Error('Couldn\'t load static files, no prefix or suffix specified!');
13 | }
14 | var deferred = $q.defer();
15 | $http(angular.extend({
16 | url: [
17 | options.prefix,
18 | options.key,
19 | options.suffix
20 | ].join(''),
21 | method: 'GET',
22 | params: ''
23 | }, options.$http)).success(function (data) {
24 | deferred.resolve(data);
25 | }).error(function (data) {
26 | deferred.reject(options.key);
27 | });
28 | return deferred.promise;
29 | };
30 | }
31 | ]);
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/app-cfg.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Activiti Modeler component part of the Activiti project
3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved.
4 | *
5 | * This library is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU Lesser General Public
7 | * License as published by the Free Software Foundation; either
8 | * version 2.1 of the License, or (at your option) any later version.
9 | *
10 | * This library is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * Lesser General Public License for more details.
14 |
15 | * You should have received a copy of the GNU Lesser General Public
16 | * License along with this library; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 | 'use strict';
20 |
21 | var ACTIVITI = ACTIVITI || {};
22 |
23 | ACTIVITI.CONFIG = {
24 | // 'contextRoot' : '/activiti-explorer/service',
25 | 'contextRoot' : '/activityApi',
26 | };
27 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/partials/stencil-item-template.html:
--------------------------------------------------------------------------------
1 |
2 |
4 | {{group.name}}
5 |
6 |
7 |
8 |
13 |
14 |
15 |
16 |
23 |
24 |
25 | {{item.name}}
26 |
27 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/json3_3.2.6/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2012-2013 Kit Cambridge.
2 | http://kitcambridge.be/
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy of
5 | this software and associated documentation files (the "Software"), to deal in
6 | the Software without restriction, including without limitation the rights to
7 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
8 | of the Software, and to permit persons to whom the Software is furnished to do
9 | so, subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in all
12 | copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 | SOFTWARE.
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | Copyright 2009, 2010 Kristopher Michael Kowal. All rights reserved.
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to
5 | deal in the Software without restriction, including without limitation the
6 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 | sell copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19 | IN THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/src/main/java/com/yfny/activityapi/utils/DeleteTaskCmd.java:
--------------------------------------------------------------------------------
1 | package com.yfny.activityapi.utils;
2 |
3 | import org.activiti.engine.impl.cmd.NeedsActiveTaskCmd;
4 | import org.activiti.engine.impl.interceptor.CommandContext;
5 | import org.activiti.engine.impl.persistence.entity.ExecutionEntity;
6 | import org.activiti.engine.impl.persistence.entity.TaskEntity;
7 | import org.activiti.engine.impl.persistence.entity.TaskEntityManagerImpl;
8 |
9 | /**
10 | *
11 | * Created by jinboYu on 2019/3/19
12 | */
13 | public class DeleteTaskCmd extends NeedsActiveTaskCmd {
14 |
15 |
16 | public DeleteTaskCmd(String taskId){
17 | super(taskId);
18 | }
19 | public String execute(CommandContext commandContext, TaskEntity currentTask){
20 | //获取所需服务
21 | TaskEntityManagerImpl taskEntityManager = (TaskEntityManagerImpl)commandContext.getTaskEntityManager();
22 | //获取当前任务的来源任务及来源节点信息
23 | ExecutionEntity executionEntity = currentTask.getExecution();
24 | //删除当前任务,来源任务
25 | taskEntityManager.deleteTask(currentTask, "jumpReason", false, false);
26 | return executionEntity.getId();
27 | }
28 | public String getSuspendedTaskException() {
29 | return "挂起的任务不能跳转";
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/editor-config.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Activiti Modeler component part of the Activiti project
3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved.
4 | *
5 | * This library is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU Lesser General Public
7 | * License as published by the Free Software Foundation; either
8 | * version 2.1 of the License, or (at your option) any later version.
9 | *
10 | * This library is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * Lesser General Public License for more details.
14 |
15 | * You should have received a copy of the GNU Lesser General Public
16 | * License along with this library; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 | 'use strict';
20 |
21 | var KISBPM = KISBPM || {};
22 |
23 | KISBPM.CONFIG = {
24 | 'showRemovedProperties' : false
25 | };
26 |
27 | KISBPM.HEADER_CONFIG = {
28 | 'showAppTitle' : true,
29 | 'showHeaderMenu' : true,
30 | 'showMainNavigation' : true,
31 | 'showPageHeader' : true
32 | };
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/condition-expression-popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
30 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "es5-shim",
3 | "version": "2.1.0",
4 | "description": "ES5 as implementable on previous engines",
5 | "homepage": "http://github.com/kriskowal/es5-shim/",
6 | "contributors": [
7 | "Kris Kowal
(http://github.com/kriskowal/)",
8 | "Sami Samhuri (http://samhuri.net/)",
9 | "Florian Schäfer (http://github.com/fschaefer)",
10 | "Irakli Gozalishvili (http://jeditoolkit.com)",
11 | "Kit Cambridge (http://kitcambridge.github.com)"
12 | ],
13 | "bugs": {
14 | "mail": "kris@cixar.com",
15 | "url": "http://github.com/kriskowal/es5-shim/issues"
16 | },
17 | "licenses": [
18 | {
19 | "type": "MIT",
20 | "url": "http://github.com/kriskowal/es5-shim/raw/master/LICENSE"
21 | }
22 | ],
23 | "main": "es5-shim.js",
24 | "repository": {
25 | "type": "git",
26 | "url": "http://github.com/kriskowal/es5-shim.git"
27 | },
28 | "scripts": {
29 | "minify": "uglifyjs es5-shim.js --source-map=es5-shim.map -b ascii_only=true,beautify=false > es5-shim.min.js; uglifyjs es5-sham.js --source-map=es5-sham.map -b ascii_only=true,beautify=false > es5-sham.min.js"
30 | },
31 | "engines": {
32 | "node": ">=0.2.0"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/header-controller.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Activiti Modeler component part of the Activiti project
3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved.
4 | *
5 | * This library is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU Lesser General Public
7 | * License as published by the Free Software Foundation; either
8 | * version 2.1 of the License, or (at your option) any later version.
9 | *
10 | * This library is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * Lesser General Public License for more details.
14 |
15 | * You should have received a copy of the GNU Lesser General Public
16 | * License along with this library; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 | 'use strict';
20 |
21 | angular.module('activitiModeler')
22 | .controller('HeaderController', ['$rootScope', '$scope', '$http', '$timeout', function ($rootScope, $scope, $http, $timeout) {
23 |
24 | // Add reference to global header-config
25 | $scope.headerConfig = KISBPM.HEADER_CONFIG;
26 |
27 | // TODO: generate setting-menu items
28 |
29 | // TODO: generate user-menu items
30 |
31 | }]);
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties-multiinstance-controller.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Activiti Modeler component part of the Activiti project
3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved.
4 | *
5 | * This library is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU Lesser General Public
7 | * License as published by the Free Software Foundation; either
8 | * version 2.1 of the License, or (at your option) any later version.
9 | *
10 | * This library is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * Lesser General Public License for more details.
14 |
15 | * You should have received a copy of the GNU Lesser General Public
16 | * License along with this library; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 |
20 | /*
21 | * Execution listeners
22 | */
23 |
24 | var KisBpmMultiInstanceCtrl = [ '$scope', function($scope) {
25 |
26 | if ($scope.property.value == undefined && $scope.property.value == null)
27 | {
28 | $scope.property.value = 'None';
29 | }
30 |
31 | $scope.multiInstanceChanged = function() {
32 | $scope.updatePropertyInModel($scope.property);
33 | };
34 | }];
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/url-config.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Activiti Modeler component part of the Activiti project
3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved.
4 | *
5 | * This library is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU Lesser General Public
7 | * License as published by the Free Software Foundation; either
8 | * version 2.1 of the License, or (at your option) any later version.
9 | *
10 | * This library is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * Lesser General Public License for more details.
14 |
15 | * You should have received a copy of the GNU Lesser General Public
16 | * License along with this library; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 | var KISBPM = KISBPM || {};
20 |
21 | KISBPM.URL = {
22 |
23 | getModel: function(modelId) {
24 | return ACTIVITI.CONFIG.contextRoot + '/model/' + modelId + '/json';
25 | },
26 |
27 | getStencilSet: function() {
28 | return ACTIVITI.CONFIG.contextRoot + '/editor/stencilset?version=' + Date.now();
29 | },
30 |
31 | putModel: function(modelId) {
32 | return ACTIVITI.CONFIG.contextRoot + '/model/' + modelId + '/save';
33 | }
34 | };
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/CONTRIBUTORS.md:
--------------------------------------------------------------------------------
1 |
2 | - kriskowal Kris Kowal Copyright (C) 2009-2011 MIT License
3 | - tlrobinson Tom Robinson Copyright (C) 2009-2010 MIT License (Narwhal
4 | Project)
5 | - dantman Daniel Friesen Copyright (C) 2010 XXX TODO License or CLA
6 | - fschaefer Florian Schäfer Copyright (C) 2010 MIT License
7 | - Gozala Irakli Gozalishvili Copyright (C) 2010 MIT License
8 | - kitcambridge Kit Cambridge Copyright (C) 2011 MIT License
9 | - kossnocorp Sasha Koss XXX TODO License or CLA
10 | - bryanforbes Bryan Forbes XXX TODO License or CLA
11 | - killdream Quildreen Motta Copyright (C) 2011 MIT Licence
12 | - michaelficarra Michael Ficarra Copyright (C) 2011 3-clause BSD
13 | License
14 | - sharkbrainguy Gerard Paapu Copyright (C) 2011 MIT License
15 | - bbqsrc Brendan Molloy (C) 2011 Creative Commons Zero (public domain)
16 | - iwyg XXX TODO License or CLA
17 | - DomenicDenicola Domenic Denicola Copyright (C) 2011 MIT License
18 | - xavierm02 Montillet Xavier Copyright (C) 2011 MIT License
19 | - Raynos Jake Verbaten Copyright (C) 2011 MIT Licence
20 | - samsonjs Sami Samhuri Copyright (C) 2010 MIT License
21 | - rwldrn Rick Waldron Copyright (C) 2011 MIT License
22 | - lexer Alexey Zakharov XXX TODO License or CLA
23 | - 280 North Inc. (Now Motorola LLC, a subsidiary of Google Inc.)
24 | Copyright (C) 2009 MIT License
25 | - Steven Levithan Copyright (C) 2012 MIT License
26 |
--------------------------------------------------------------------------------
/src/main/java/com/yfny/activityapi/utils/SetFLowNodeAndGoCmd.java:
--------------------------------------------------------------------------------
1 | package com.yfny.activityapi.utils;
2 |
3 | import org.activiti.bpmn.model.FlowNode;
4 | import org.activiti.bpmn.model.SequenceFlow;
5 | import org.activiti.engine.ActivitiException;
6 | import org.activiti.engine.impl.interceptor.Command;
7 | import org.activiti.engine.impl.interceptor.CommandContext;
8 | import org.activiti.engine.impl.persistence.entity.ExecutionEntity;
9 |
10 | import java.util.List;
11 |
12 | /**
13 | *
14 | * Created by jinboYu on 2019/3/19
15 | */
16 | public class SetFLowNodeAndGoCmd implements Command {
17 |
18 | private FlowNode flowElement;
19 | private String executionId;
20 | public SetFLowNodeAndGoCmd(FlowNode flowElement,String executionId){
21 | this.flowElement = flowElement;
22 | this.executionId = executionId;
23 | }
24 |
25 | @Override
26 | public String execute(CommandContext commandContext){
27 | //获取目标节点的来源连线
28 | List flows = flowElement.getIncomingFlows();
29 | if(flows==null || flows.size()<1){
30 | throw new ActivitiException("回退错误,目标节点没有来源连线");
31 | }
32 | //随便选一条连线来执行,时当前执行计划为,从连线流转到目标节点,实现跳转
33 | ExecutionEntity executionEntity = commandContext.getExecutionEntityManager().findById(executionId);
34 | executionEntity.setCurrentFlowElement(flows.get(0));
35 | commandContext.getAgenda().planTakeOutgoingSequenceFlowsOperation(executionEntity, true);
36 | return null;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-kill.js:
--------------------------------------------------------------------------------
1 | // This methods allows the killing of built-in functions,
2 | // so the shim can take over with that implementation
3 | var HLP = (function() {
4 | "use strict";
5 | var kill;
6 |
7 | kill = function(_class, methods) {
8 | /*if(!Array.isArray(methods))
9 | return;*/
10 | if(!_class.originals)
11 | _class.originals = {};
12 |
13 | for (var i = 0, len = methods.length; i < len; i++) {
14 | var obj = methods[i];
15 | _class.originals[obj] = _class[obj];
16 | delete _class[obj];
17 | if (obj in _class) {
18 | // try something more aggressive since V8 at least
19 | // appears to ignore the delete.
20 | _class[obj] = null;
21 | if (_class[obj]) {
22 | console.log("Couln't overwrite", obj, "of", _class);
23 | }
24 | }
25 | }
26 | };
27 | return { kill: kill };
28 | }());
29 |
30 | HLP.kill(Function.prototype, [
31 | 'bind'
32 | ]);
33 |
34 | HLP.kill(Array, [
35 | 'isArray'
36 | ]);
37 |
38 | HLP.kill(String.prototype, [
39 | "trim"
40 | ]);
41 |
42 | HLP.kill(Object, [
43 | 'keys'
44 | ]);
45 |
46 | HLP.kill(Number.prototype, [
47 | 'toFixed'
48 | ]);
49 |
50 | HLP.kill(Date, [
51 | 'now', 'parse'
52 | ]);
53 |
54 | HLP.kill(Date.prototype, [
55 | "toJSON", "toISOString"
56 | ]);
57 |
58 | HLP.kill(Array.prototype, [
59 | 'forEach', 'some', 'every',
60 | 'indexOf', 'lastIndexOf',
61 | 'map', 'filter',
62 | 'reduce', 'reduceRight'
63 | ]);
64 |
65 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/tests/index.min.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Jasmine Spec Runner
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/tests/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Jasmine Spec Runner
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/src/main/java/com/yfny/activityapi/service/ModelService.java:
--------------------------------------------------------------------------------
1 | package com.yfny.activityapi.service;
2 |
3 | import com.fasterxml.jackson.databind.node.ObjectNode;
4 | import org.activiti.engine.repository.Model;
5 | import org.springframework.transaction.annotation.Propagation;
6 | import org.springframework.transaction.annotation.Transactional;
7 | import org.springframework.web.bind.annotation.PathVariable;
8 |
9 | import javax.servlet.http.HttpServletRequest;
10 | import javax.servlet.http.HttpServletResponse;
11 | import java.util.List;
12 |
13 | /**
14 | * 流程模型Service
15 | *
16 | * Created by jinboYu on 2019/3/28
17 | */
18 | @Transactional(propagation= Propagation.REQUIRED,rollbackFor=Exception.class)
19 | public interface ModelService {
20 |
21 | /**
22 | * 创建流程模型
23 | * @param request
24 | * @param response
25 | * @throws Exception
26 | */
27 | void createModel(HttpServletRequest request, HttpServletResponse response) throws Exception;
28 |
29 | /**
30 | * 获取流程模型,带分页
31 | * @param pageNum 当前页
32 | * @param pageSize 显示数量
33 | * @return
34 | * @throws Exception
35 | */
36 | List selectModel(int pageNum,int pageSize) throws Exception;
37 |
38 | /**
39 | * 保存流程模型
40 | * @param modelId
41 | * @param name
42 | * @param description
43 | * @param json_xml
44 | * @param svg_xml
45 | * @return
46 | */
47 | int saveModel(@PathVariable String modelId, String name, String description, String json_xml, String svg_xml) throws Exception;
48 |
49 | /**
50 | * 根据流程模型ID部署流程
51 | * @param modelId
52 | * @throws Exception
53 | */
54 | int deployModel(String modelId) throws Exception;
55 |
56 |
57 | /**
58 | * 获取模型json数据
59 | * @param modelId
60 | * @return
61 | * @throws Exception
62 | */
63 | ObjectNode getEditorJson(@PathVariable String modelId) throws Exception;
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/popups/save-model.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
9 |
10 |
11 | {{'MODEL.NAME' | translate}}
12 |
19 |
20 |
21 | {{'MODEL.DESCRIPTION' | translate}}
22 |
23 |
24 |
25 |
40 |
41 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/sequenceflow-order-popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
12 |
PROPERTY.SEQUENCEFLOW.ORDER.DESCRIPTION
13 |
14 |
15 |
16 | {{'PROPERTY.SEQUENCEFLOW.ORDER.SEQUENCEFLOW.VALUE' | translate:sequenceFlow}}
17 |
24 |
25 |
26 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties-signal-scope-controller.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Activiti Modeler component part of the Activiti project
3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved.
4 | *
5 | * This library is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU Lesser General Public
7 | * License as published by the Free Software Foundation; either
8 | * version 2.1 of the License, or (at your option) any later version.
9 | *
10 | * This library is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * Lesser General Public License for more details.
14 |
15 | * You should have received a copy of the GNU Lesser General Public
16 | * License along with this library; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 | angular.module('activitiModeler').controller('ActivitiSignalRefCtrl', [ '$scope', function($scope) {
20 |
21 | // Find the parent shape on which the signal definitions are defined
22 | var signalDefinitionsProperty = undefined;
23 | var parent = $scope.selectedShape;
24 | while (parent !== null && parent !== undefined && signalDefinitionsProperty === undefined) {
25 | if (parent.properties && parent.properties['oryx-signaldefinitions']) {
26 | signalDefinitionsProperty = parent.properties['oryx-signaldefinitions'];
27 | } else {
28 | parent = parent.parent;
29 | }
30 | }
31 |
32 | try {
33 | signalDefinitionsProperty = JSON.parse(signalDefinitionsProperty);
34 | if (typeof signalDefinitionsProperty == 'string') {
35 | signalDefinitionsProperty = JSON.parse(signalDefinitionsProperty);
36 | }
37 | } catch (err) {
38 | // Do nothing here, just to be sure we try-catch it
39 | }
40 |
41 | $scope.signalDefinitions = signalDefinitionsProperty;
42 |
43 |
44 | $scope.signalChanged = function() {
45 | $scope.updatePropertyInModel($scope.property);
46 | };
47 | }]);
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties-message-scope-controller.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Activiti Modeler component part of the Activiti project
3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved.
4 | *
5 | * This library is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU Lesser General Public
7 | * License as published by the Free Software Foundation; either
8 | * version 2.1 of the License, or (at your option) any later version.
9 | *
10 | * This library is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * Lesser General Public License for more details.
14 |
15 | * You should have received a copy of the GNU Lesser General Public
16 | * License along with this library; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 |
20 | angular.module('activitiModeler').controller('ActivitiMessageRefCtrl', [ '$scope', function($scope) {
21 |
22 | // Find the parent shape on which the message definitions are defined
23 | var messageDefinitionsProperty = undefined;
24 | var parent = $scope.selectedShape;
25 | while (parent !== null && parent !== undefined && messageDefinitionsProperty === undefined) {
26 | if (parent.properties && parent.properties['oryx-messagedefinitions']) {
27 | messageDefinitionsProperty = parent.properties['oryx-messagedefinitions'];
28 | } else {
29 | parent = parent.parent;
30 | }
31 | }
32 |
33 | try {
34 | messageDefinitionsProperty = JSON.parse(messageDefinitionsProperty);
35 | if (typeof messageDefinitionsProperty == 'string') {
36 | messageDefinitionsProperty = JSON.parse(messageDefinitionsProperty);
37 | }
38 | } catch (err) {
39 | // Do nothing here, just to be sure we try-catch it
40 | }
41 |
42 | $scope.messageDefinitions = messageDefinitionsProperty;
43 |
44 |
45 | $scope.messageChanged = function() {
46 | $scope.updatePropertyInModel($scope.property);
47 | };
48 | }]);
--------------------------------------------------------------------------------
/src/main/java/com/yfny/activityapi/service/FlowTaskService.java:
--------------------------------------------------------------------------------
1 | package com.yfny.activityapi.service;
2 |
3 | import org.activiti.engine.task.Task;
4 | import org.springframework.transaction.annotation.Propagation;
5 | import org.springframework.transaction.annotation.Transactional;
6 |
7 | import java.util.List;
8 | import java.util.Map;
9 |
10 | /**
11 | * 流程任务Service
12 | *
13 | * Created by jinboYu on 2019/3/26
14 | */
15 | @Transactional(propagation= Propagation.REQUIRED,rollbackFor=Exception.class)
16 | public interface FlowTaskService {
17 |
18 | /**
19 | * 创建任务
20 | * @param userId 任务创建人ID
21 | * @param key 部署流程ID
22 | * @param variables 任务变量
23 | * @return 返回任务ID
24 | * @throws Exception
25 | */
26 | String createTask(String userId, String key, Map variables) throws Exception;
27 |
28 | /**
29 | * 完成任务
30 | * @param taskId 任务ID
31 | * @param variables 任务变量
32 | * @return 返回任务ID
33 | * @throws Exception
34 | */
35 | String fulfilTask(String taskId, Map variables) throws Exception;
36 |
37 | /**
38 | * 取消任务
39 | * @param taskId 任务ID
40 | * @return 1为取消成功,2为取消失败
41 | * @throws Exception
42 | */
43 | int revocationTask(String taskId) throws Exception;
44 |
45 | /**
46 | * 创建用户
47 | * @param userId 用户ID
48 | * @return 1为创建成功。2为创建失败
49 | * @throws Exception
50 | */
51 | int createUser(String userId) throws Exception;
52 |
53 | /**
54 | * 根据用户ID查询任务,带分页
55 | * @param userId 用户ID
56 | * @param pageNum 当前页
57 | * @param pageSize 显示数量
58 | * @return
59 | * @throws Exception
60 | */
61 | String getDemandByUserId( String userId,int pageNum, int pageSize)throws Exception;
62 |
63 | /**
64 | * 根据分组ID获取任务列表,带分页
65 | *
66 | * @param groupId 分组ID
67 | * @param pageNum 当前页数
68 | * @param pageSize 显示数量
69 | * @return
70 | */
71 | String getDemandByGroupId(String groupId,int pageNum,int pageSize)throws Exception;
72 |
73 | List getTaskListByUserId(String userId, int pageNum, int pageSize)throws Exception;
74 | }
75 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties-condition-expression-controller.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Activiti Modeler component part of the Activiti project
3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved.
4 | *
5 | * This library is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU Lesser General Public
7 | * License as published by the Free Software Foundation; either
8 | * version 2.1 of the License, or (at your option) any later version.
9 | *
10 | * This library is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * Lesser General Public License for more details.
14 |
15 | * You should have received a copy of the GNU Lesser General Public
16 | * License along with this library; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 |
20 | /*
21 | * Condition expression
22 | */
23 |
24 | var KisBpmConditionExpressionCtrl = [ '$scope', '$modal', function($scope, $modal) {
25 |
26 | // Config for the modal window
27 | var opts = {
28 | template: 'editor-app/configuration/properties/condition-expression-popup.html?version=' + Date.now(),
29 | scope: $scope
30 | };
31 |
32 | // Open the dialog
33 | $modal(opts);
34 | }];
35 |
36 | var KisBpmConditionExpressionPopupCtrl = [ '$scope', '$translate', '$http', function($scope, $translate, $http) {
37 |
38 | // Put json representing condition on scope
39 | if ($scope.property.value !== undefined && $scope.property.value !== null) {
40 |
41 | $scope.conditionExpression = {value: $scope.property.value};
42 |
43 | } else {
44 | $scope.conditionExpression = {value: ''};
45 | }
46 |
47 | $scope.save = function() {
48 | $scope.property.value = $scope.conditionExpression.value;
49 | $scope.updatePropertyInModel($scope.property);
50 | $scope.close();
51 | };
52 |
53 | // Close button handler
54 | $scope.close = function() {
55 | $scope.property.mode = 'read';
56 | $scope.$hide();
57 | };
58 | }];
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/style.css:
--------------------------------------------------------------------------------
1 | body {
background: #fafafa;
color: #708090;
/* font: 300 100.1% "Helvetica Neue", Helvetica, "Arial Unicode MS", Arial, sans-serif; */
font-family: Verdana, sans-serif, Arial;
font-size: 10px;
}
.wrapper{
height: 100%;
position: relative;
width: 100%;
}
/*
#holder {
height: 480px;
width: 640px;
b_ackground: #F8F8FF;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
-webkit-box-shadow: 0 1px 3px #666;
background: #DDD url(./images/bg.png);
/* background: #DDD url(./images/checker-bg.png); * /
b_order:0px solid #dedede;
}
*/
div.diagramHolder {
float:left;
}
div.diagram{
border:1px solid #dedede;
margin: 5px;
padding: 5px;
background: #FFF;
}
div.diagram.hidden{
display:none;
}
svg {
background: #DDD url(./images/bg.png);
}
div.diagram-info {
float:left;
position: relative;
padding: 5px;
}
/* Breadcrumbs */
#diagramBreadCrumbs {
margin-left: 2px;
margin-right: 2px;
margin-top: 10px;
}
#diagramBreadCrumbs ul {
list-style: none;
background-color: white;
border: 1px solid #DEDEDE;
border-color: #C0C2C5;
margin: 0;
margin-bottom: 10px;
margin-left: 0;
-webkit-padding-start: 0px;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}
#diagramBreadCrumbs li {
/*text-decoration: underline;*/
display: inline-block;
vertical-align: middle;
padding-left: .75em;
padding-right: 0;
cursor: pointer;
}
#diagramBreadCrumbs li.selected {
color: #9370DB;
color: #4876FF;
color: #4F94CD;
font-weight: bold;
}
#diagramBreadCrumbs li span {
background: url(images/breadcrumbs.png) no-repeat 100% 50%;
display: block;
padding: .5em 15px .5em 0;
}
/* Progress bar */
.ui-progressbar {
height: 25px;
/*height:2em; text-align: left; overflow: hidden; */
background: white;
border: 1px solid #949DAD;
margin: 2px;
overflow: hidden;
padding: 1px;
position: relative;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}
.ui-progressbar .ui-progressbar-value {
m_argin: -1px;
height:100%;
background: #D4E4FF;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}
.ui-widget-header a { color: #222222/*{fcHeader}*/; }
.ui-progressbar .ui-progressbar-label{
position: absolute;
margin-top: 7px;
border:0px solid red;
width: 100%;
text-align: center;
}
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js.map:
--------------------------------------------------------------------------------
1 | {
2 | "version":3,
3 | "file":"angular-cookies.min.js",
4 | "lineCount":7,
5 | "mappings":"A;;;;;aAKC,SAAQ,CAACA,CAAD,CAASC,CAAT,CAAkBC,CAAlB,CAA6B,CAoBtCD,CAAAE,OAAA,CAAe,WAAf,CAA4B,CAAC,IAAD,CAA5B,CAAAC,QAAA,CA4BW,UA5BX,CA4BuB,CAAC,YAAD,CAAe,UAAf,CAA2B,QAAS,CAACC,CAAD,CAAaC,CAAb,CAAuB,CAAA,IACxEC,EAAU,EAD8D,CAExEC,EAAc,EAF0D,CAGxEC,CAHwE,CAIxEC,EAAU,CAAA,CAJ8D,CAKxEC,EAAOV,CAAAU,KALiE,CAMxEC,EAAcX,CAAAW,YAGlBN,EAAAO,UAAA,CAAmB,QAAQ,EAAG,CAC5B,IAAIC,EAAiBR,CAAAC,QAAA,EACjBE,EAAJ,EAA0BK,CAA1B,GACEL,CAGA,CAHqBK,CAGrB,CAFAH,CAAA,CAAKG,CAAL,CAAqBN,CAArB,CAEA,CADAG,CAAA,CAAKG,CAAL,CAAqBP,CAArB,CACA,CAAIG,CAAJ,EAAaL,CAAAU,OAAA,EAJf,CAF4B,CAA9B,CAAA,EAUAL,EAAA,CAAU,CAAA,CAKVL,EAAAW,OAAA,CASAC,QAAa,EAAG,CAAA,IACVC,CADU,CAEVC,CAFU,CAIVC,CAGJ,KAAKF,CAAL,GAAaV,EAAb,CACMI,CAAA,CAAYL,CAAA,CAAQW,CAAR,CAAZ,CAAJ,EACEZ,CAAAC,QAAA,CAAiBW,CAAjB,CAAuBhB,CAAvB,CAKJ,KAAIgB,CAAJ,GAAYX,EAAZ,CAEE,CADAY,CACK,CADGZ,CAAA,CAAQW,CAAR,CACH,CAAAjB,CAAAoB,SAAA,CAAiBF,CAAjB,CAAL,EAMWA,CANX,GAMqBX,CAAA,CAAYU,CAAZ,CANrB,GAOEZ,CAAAC,QAAA,CAAiBW,CAAjB,CAAuBC,CAAvB,CACA,CAAAC,CAAA,CAAU,CAAA,CARZ,EACMnB,CAAAqB,UAAA,CAAkBd,CAAA,CAAYU,CAAZ,CAAlB,CAAJ,CACEX,CAAA,CAAQW,CAAR,CADF,CACkBV,CAAA,CAAYU,CAAZ,CADlB,CAGE,OAAOX,CAAA,CAAQW,CAAR,CASb,IAAIE,CAAJ,CAIE,IAAKF,CAAL,GAFAK,EAEahB,CAFID,CAAAC,QAAA,EAEJA,CAAAA,CAAb,CACMA,CAAA,CAAQW,CAAR,CAAJ,GAAsBK,CAAA,CAAeL,CAAf,CAAtB,GAEMN,CAAA,CAAYW,CAAA,CAAeL,CAAf,CAAZ,CAAJ,CACE,OAAOX,CAAA,CAAQW,CAAR,CADT,CAGEX,CAAA,CAAQW,CAAR,CAHF,CAGkBK,CAAA,CAAeL,CAAf,CALpB,CAlCU,CAThB,CAEA;MAAOX,EA1BqE,CAA3D,CA5BvB,CAAAH,QAAA,CA4HW,cA5HX,CA4H2B,CAAC,UAAD,CAAa,QAAQ,CAACoB,CAAD,CAAW,CAErD,MAAO,KAYAC,QAAQ,CAACC,CAAD,CAAM,CAEjB,MAAO,CADHP,CACG,CADKK,CAAA,CAASE,CAAT,CACL,EAAQzB,CAAA0B,SAAA,CAAiBR,CAAjB,CAAR,CAAkCA,CAFxB,CAZd,KA4BAS,QAAQ,CAACF,CAAD,CAAMP,CAAN,CAAa,CACxBK,CAAA,CAASE,CAAT,CAAA,CAAgBzB,CAAA4B,OAAA,CAAeV,CAAf,CADQ,CA5BrB,QA0CGW,QAAQ,CAACJ,CAAD,CAAM,CACpB,OAAOF,CAAA,CAASE,CAAT,CADa,CA1CjB,CAF8C,CAAhC,CA5H3B,CApBsC,CAArC,CAAA,CAoME1B,MApMF,CAoMUA,MAAAC,QApMV;",
6 | "sources":["angular-cookies.js"],
7 | "names":["window","angular","undefined","module","factory","$rootScope","$browser","cookies","lastCookies","lastBrowserCookies","runEval","copy","isUndefined","addPollFn","currentCookies","$apply","$watch","push","name","value","updated","isString","isDefined","browserCookies","$cookies","get","key","fromJson","put","toJson","remove"]
8 | }
--------------------------------------------------------------------------------
/src/main/java/com/yfny/activityapi/controller/model/StencilsetRestResource.java:
--------------------------------------------------------------------------------
1 | /* Licensed under the Apache License, Version 2.0 (the "License");
2 | * you may not use this file except in compliance with the License.
3 | * You may obtain a copy of the License at
4 | *
5 | * http://www.apache.org/licenses/LICENSE-2.0
6 | *
7 | * Unless required by applicable law or agreed to in writing, software
8 | * distributed under the License is distributed on an "AS IS" BASIS,
9 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 | * See the License for the specific language governing permissions and
11 | * limitations under the License.
12 | */
13 | package com.yfny.activityapi.controller.model;
14 |
15 | import java.io.InputStream;
16 |
17 | import org.activiti.engine.ActivitiException;
18 | import org.apache.commons.io.IOUtils;
19 | import org.springframework.web.bind.annotation.RequestMapping;
20 | import org.springframework.web.bind.annotation.RequestMethod;
21 | import org.springframework.web.bind.annotation.ResponseBody;
22 | import org.springframework.web.bind.annotation.RestController;
23 |
24 | /**
25 | * @author Tijs Rademakers
26 | */
27 | @RestController
28 | public class StencilsetRestResource {
29 |
30 | // 源码
31 | // @RequestMapping(value="/editor/stencilset", method = RequestMethod.GET, produces = "application/json;charset=utf-8")
32 | // public @ResponseBody String getStencilset() {
33 | // InputStream stencilsetStream = this.getClass().getClassLoader().getResourceAsStream("stencilset.json");
34 | // try {
35 | // return IOUtils.toString(stencilsetStream, "utf-8");
36 | // } catch (Exception e) {
37 | // throw new ActivitiException("Error while loading stencil set", e);
38 | // }
39 | // }
40 |
41 | //修改源码解决Activiti6.0.0及以上版本与activiti-modeler冲突
42 | @RequestMapping(value = "/editor/stencilset", method = RequestMethod.GET, produces = "application/json;charset=utf-8")
43 | public @ResponseBody
44 | String getStencilset() {
45 | //stencilset.json为Model中的工具栏的名称字符,这里在resources下面查找
46 | InputStream stencilsetStream = this.getClass().getClassLoader().getResourceAsStream("stencilset.json");
47 | try {
48 | return IOUtils.toString(stencilsetStream, "utf-8");
49 | } catch (Exception e) {
50 | throw new ActivitiException("Error while loading stencil set", e);
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/main/java/com/yfny/activityapi/controller/FlowDiagramController.java:
--------------------------------------------------------------------------------
1 | package com.yfny.activityapi.controller;
2 |
3 | import com.yfny.activityapi.service.FlowDiagramService;
4 | import org.springframework.beans.factory.annotation.Autowired;
5 | import org.springframework.web.bind.annotation.GetMapping;
6 | import org.springframework.web.bind.annotation.PathVariable;
7 | import org.springframework.web.bind.annotation.RequestMapping;
8 | import org.springframework.web.bind.annotation.RestController;
9 |
10 | import javax.imageio.ImageIO;
11 | import javax.servlet.http.HttpServletResponse;
12 | import java.awt.image.BufferedImage;
13 | import java.io.InputStream;
14 | import java.io.OutputStream;
15 |
16 | /**
17 | * 流程图相关Controller
18 | *
19 | * Created by jinboYu on 2019/3/28
20 | */
21 | @RestController
22 | @RequestMapping(value = "/flowDiagram")
23 | public class FlowDiagramController {
24 |
25 | //流程图相关Service
26 | @Autowired
27 | private FlowDiagramService flowDiagramService;
28 |
29 | /**
30 | * 根据流程实例ID获取流程图,高亮当前任务节点及历史节点
31 | *
32 | * @param taskId 任务ID
33 | * @param response
34 | */
35 | @GetMapping(value = "/getImage/{taskId}")
36 | public void getImage(@PathVariable String taskId,
37 | HttpServletResponse response) throws Exception {
38 | //根据当前流程实例ID获取图片输入流
39 | InputStream is = flowDiagramService.getResourceDiagramInputStream(taskId);
40 | if (is == null)
41 | return;
42 | response.setContentType("image/png");
43 | BufferedImage image = ImageIO.read(is);
44 | OutputStream out = response.getOutputStream();
45 | ImageIO.write(image, "png", out);
46 | is.close();
47 | out.close();
48 | }
49 |
50 | /**
51 | * 根据流程实例ID生成流程图,只高亮当前任务节点
52 | *
53 | * @param taskId 任务ID
54 | * @param response
55 | */
56 | @GetMapping(value = "/getDiagram/{taskId}")
57 | public void getDiagram(@PathVariable String taskId,
58 | HttpServletResponse response) throws Exception {
59 | //根据当前流程实例ID获取图片输入流
60 | InputStream is = flowDiagramService.getDiagram(taskId);
61 | if (is == null)
62 | return;
63 | response.setContentType("image/png");
64 | BufferedImage image = ImageIO.read(is);
65 | OutputStream out = response.getOutputStream();
66 | ImageIO.write(image, "png", out);
67 | is.close();
68 | out.close();
69 | }
70 |
71 | }
72 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/subprocess-reference-popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
14 |
15 |
16 |
17 |
PROPERTY.SUBPROCESSREFERENCE.ERROR.SUBPROCESS
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
{{sub.name}}
27 |
28 |
29 |
30 |
PROPERTY.SUBPROCESSREFERENCE.SUBPROCESS.LOADING
31 |
32 |
33 |
PROPERTY.SUBPROCESSREFERENCE.SUBPROCESS.EMPTY
34 |
35 |
36 |
37 |
38 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/message-definitions-popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
12 |
13 |
14 |
15 |
24 |
25 |
38 |
39 |
40 |
41 |
42 |
43 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/editor-controller.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Activiti Modeler component part of the Activiti project
3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved.
4 | *
5 | * This library is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU Lesser General Public
7 | * License as published by the Free Software Foundation; either
8 | * version 2.1 of the License, or (at your option) any later version.
9 | *
10 | * This library is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * Lesser General Public License for more details.
14 |
15 | * You should have received a copy of the GNU Lesser General Public
16 | * License along with this library; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 | 'use strict';
20 |
21 | angular.module('activitiModeler')
22 | .controller('EditorUnsavedChangesPopupCrtl', ['$rootScope', '$scope', '$http', '$location', '$window', function ($rootScope, $scope, $http, $location, $window) {
23 |
24 | $scope.ok = function () {
25 | if ($scope.handleResponseFunction) {
26 | $scope.handleResponseFunction(true);
27 |
28 | // Also clear any 'onbeforeunload', added by oryx
29 | $window.onbeforeunload = undefined;
30 | }
31 | $scope.$hide();
32 | };
33 |
34 | $scope.cancel = function () {
35 | if ($scope.handleResponseFunction) {
36 | $scope.handleResponseFunction(false);
37 | }
38 | $scope.$hide();
39 | };
40 | }]);
41 |
42 | activitiModule
43 | .directive('autoFocus', ['$timeout', '$parse', function($timeout, $parse) {
44 | return {
45 | restrict: 'AC',
46 | compile: function($element, attr) {
47 |
48 | return function(_scope, _element, _attrs) {
49 | var firstChild = (_attrs.focusFirstChild !== undefined);
50 | $timeout(function () {
51 | if (firstChild) {
52 | // look for first input-element in child-tree and focus that
53 | var inputs = _element.find('input');
54 | if (inputs && inputs.length > 0) {
55 | inputs[0].focus();
56 | }
57 | } else {
58 | // Focus element where the directive is put on
59 | _element[0].focus();
60 | }
61 | }, 100);
62 | }
63 | }
64 | };
65 | }]);
66 |
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/js/ActivitiRest.js:
--------------------------------------------------------------------------------
1 | var ActivitiRest = {
2 | options: {},
3 | getProcessDefinitionByKey: function(processDefinitionKey, callback) {
4 | var url = Lang.sub(this.options.processDefinitionByKeyUrl, {processDefinitionKey: processDefinitionKey});
5 |
6 | $.ajax({
7 | url: url,
8 | dataType: 'jsonp',
9 | cache: false,
10 | async: true,
11 | success: function(data, textStatus) {
12 | var processDefinition = data;
13 | if (!processDefinition) {
14 | console.error("Process definition '" + processDefinitionKey + "' not found");
15 | } else {
16 | callback.apply({processDefinitionId: processDefinition.id});
17 | }
18 | }
19 | }).done(function(data, textStatus) {
20 | console.log("ajax done");
21 | }).fail(function(jqXHR, textStatus, error){
22 | console.error('Get diagram layout['+processDefinitionKey+'] failure: ', textStatus, 'error: ', error, jqXHR);
23 | });
24 | },
25 |
26 | getProcessDefinition: function(processDefinitionId, callback) {
27 | var url = Lang.sub(this.options.processDefinitionUrl, {processDefinitionId: processDefinitionId});
28 |
29 | $.ajax({
30 | url: url,
31 | dataType: 'jsonp',
32 | cache: false,
33 | async: true,
34 | success: function(data, textStatus) {
35 | var processDefinitionDiagramLayout = data;
36 | if (!processDefinitionDiagramLayout) {
37 | console.error("Process definition diagram layout '" + processDefinitionId + "' not found");
38 | return;
39 | } else {
40 | callback.apply({processDefinitionDiagramLayout: processDefinitionDiagramLayout});
41 | }
42 | }
43 | }).done(function(data, textStatus) {
44 | console.log("ajax done");
45 | }).fail(function(jqXHR, textStatus, error){
46 | console.log('Get diagram layout['+processDefinitionId+'] failure: ', textStatus, jqXHR);
47 | });
48 | },
49 |
50 | getHighLights: function(processInstanceId, callback) {
51 | var url = Lang.sub(this.options.processInstanceHighLightsUrl, {processInstanceId: processInstanceId});
52 |
53 | $.ajax({
54 | url: url,
55 | dataType: 'jsonp',
56 | cache: false,
57 | async: true,
58 | success: function(data, textStatus) {
59 | console.log("ajax returned data");
60 | var highLights = data;
61 | if (!highLights) {
62 | console.log("highLights not found");
63 | return;
64 | } else {
65 | callback.apply({highLights: highLights});
66 | }
67 | }
68 | }).done(function(data, textStatus) {
69 | console.log("ajax done");
70 | }).fail(function(jqXHR, textStatus, error){
71 | console.log('Get HighLights['+processInstanceId+'] failure: ', textStatus, jqXHR);
72 | });
73 | }
74 | };
--------------------------------------------------------------------------------
/src/main/java/com/yfny/activityapi/controller/model/ModelController.java:
--------------------------------------------------------------------------------
1 | package com.yfny.activityapi.controller.model;
2 |
3 | import com.fasterxml.jackson.databind.node.ObjectNode;
4 | import com.yfny.activityapi.service.ModelService;
5 | import org.activiti.engine.repository.Model;
6 | import org.springframework.beans.factory.annotation.Autowired;
7 | import org.springframework.http.HttpStatus;
8 | import org.springframework.web.bind.annotation.*;
9 |
10 | import javax.servlet.http.HttpServletRequest;
11 | import javax.servlet.http.HttpServletResponse;
12 | import java.util.List;
13 |
14 | /**
15 | * 流程模型Controller
16 | *
17 | * Created by jinboYu on 2019/3/28
18 | */
19 | @RestController
20 | @RequestMapping(value = "/model")
21 | public class ModelController {
22 |
23 | @Autowired
24 | private ModelService modelService;
25 |
26 |
27 | /**
28 | * 创建流程模型
29 | * @param request
30 | * @param response
31 | * @throws Exception
32 | */
33 | @GetMapping("/create")
34 | public void createModel(HttpServletRequest request, HttpServletResponse response) throws Exception{
35 | modelService.createModel(request,response);
36 | }
37 |
38 |
39 | @GetMapping(value="/{modelId}/json", produces = "application/json")
40 | public ObjectNode getEditorJson(@PathVariable String modelId) throws Exception {
41 | return modelService.getEditorJson(modelId);
42 | }
43 |
44 | /**
45 | * 获取流程模型,带分页
46 | * @param pageNum 当前页
47 | * @param pageSize
48 | * @return
49 | * @throws Exception
50 | */
51 | @GetMapping(value = "/selectModel/{pageNum}/{pageSize}")
52 | public List selectModel(@PathVariable int pageNum,@PathVariable int pageSize) throws Exception{
53 | return modelService.selectModel(pageNum,pageSize);
54 | }
55 |
56 | /**
57 | * 保存流程模型
58 | * @param modelId
59 | * @param name
60 | * @param description
61 | * @param json_xml
62 | * @param svg_xml
63 | * @return
64 | * @throws Exception
65 | */
66 | @PutMapping(value="/{modelId}/save")
67 | @ResponseStatus(value = HttpStatus.OK)
68 | public int saveModel(@PathVariable String modelId, String name, String description, String json_xml, String svg_xml) throws Exception {
69 | return modelService.saveModel(modelId,name,description,json_xml,svg_xml);
70 | }
71 |
72 | /**
73 | * 部署流程模型
74 | * @param modelId
75 | * @return
76 | * @throws Exception
77 | */
78 | @GetMapping(value = "/deployModel/{modelId}")
79 | public int deployModel(@PathVariable String modelId) throws Exception {
80 | return modelService.deployModel(modelId);
81 | }
82 |
83 | }
84 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/plugins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/jquery.autogrow-textarea.js:
--------------------------------------------------------------------------------
1 | (function($)
2 | {
3 | /**
4 | * Auto-growing textareas; technique ripped from Facebook
5 | *
6 | * http://github.com/jaz303/jquery-grab-bag/tree/master/javascripts/jquery.autogrow-textarea.js
7 | */
8 | $.fn.autogrow = function(options)
9 | {
10 | return this.filter('textarea').each(function()
11 | {
12 | var self = this;
13 | var $self = $(self);
14 | var minHeight = $self.height();
15 | var noFlickerPad = $self.hasClass('autogrow-short') ? 0 : parseInt($self.css('lineHeight')) || 0;
16 |
17 | var shadow = $('
').css({
18 | position: 'absolute',
19 | top: -10000,
20 | left: -10000,
21 | width: $self.width(),
22 | fontSize: $self.css('fontSize'),
23 | fontFamily: $self.css('fontFamily'),
24 | fontWeight: $self.css('fontWeight'),
25 | lineHeight: $self.css('lineHeight'),
26 | resize: 'none',
27 | 'word-wrap': 'break-word'
28 | }).appendTo(document.body);
29 |
30 | var update = function(event)
31 | {
32 | var times = function(string, number)
33 | {
34 | for (var i=0, r=''; i /g, '>')
40 | .replace(/&/g, '&')
41 | .replace(/\n$/, ' ')
42 | .replace(/\n/g, ' ')
43 | .replace(/ {2,}/g, function(space){ return times(' ', space.length - 1) + ' ' });
44 |
45 | // Did enter get pressed? Resize in this keydown event so that the flicker doesn't occur.
46 | if (event && event.data && event.data.event === 'keydown' && event.keyCode === 13) {
47 | val += ' ';
48 | }
49 |
50 | shadow.css('width', $self.width());
51 | shadow.html(val + (noFlickerPad === 0 ? '...' : '')); // Append '...' to resize pre-emptively.
52 | $self.height(Math.max(shadow.height() + noFlickerPad, minHeight));
53 | }
54 |
55 | $self.change(update).keyup(update).keydown({event:'keydown'},update);
56 | $(window).resize(update);
57 |
58 | update();
59 | });
60 | };
61 | })(jQuery);
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/assignment-popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 |
11 |
12 | {{'PROPERTY.ASSIGNMENT.ASSIGNEE' | translate}}
13 |
14 |
15 |
16 |
17 |
36 |
37 |
38 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif;
3 | }
4 |
5 |
6 | .jasmine_reporter a:visited, .jasmine_reporter a {
7 | color: #303;
8 | }
9 |
10 | .jasmine_reporter a:hover, .jasmine_reporter a:active {
11 | color: blue;
12 | }
13 |
14 | .run_spec {
15 | float:right;
16 | padding-right: 5px;
17 | font-size: .8em;
18 | text-decoration: none;
19 | }
20 |
21 | .jasmine_reporter {
22 | margin: 0 5px;
23 | }
24 |
25 | .banner {
26 | color: #303;
27 | background-color: #fef;
28 | padding: 5px;
29 | }
30 |
31 | .logo {
32 | float: left;
33 | font-size: 1.1em;
34 | padding-left: 5px;
35 | }
36 |
37 | .logo .version {
38 | font-size: .6em;
39 | padding-left: 1em;
40 | }
41 |
42 | .runner.running {
43 | background-color: yellow;
44 | }
45 |
46 |
47 | .options {
48 | text-align: right;
49 | font-size: .8em;
50 | }
51 |
52 |
53 |
54 |
55 | .suite {
56 | border: 1px outset gray;
57 | margin: 5px 0;
58 | padding-left: 1em;
59 | }
60 |
61 | .suite .suite {
62 | margin: 5px;
63 | }
64 |
65 | .suite.passed {
66 | background-color: #dfd;
67 | }
68 |
69 | .suite.failed {
70 | background-color: #fdd;
71 | }
72 |
73 | .spec {
74 | margin: 5px;
75 | padding-left: 1em;
76 | clear: both;
77 | }
78 |
79 | .spec.failed, .spec.passed, .spec.skipped {
80 | padding-bottom: 5px;
81 | border: 1px solid gray;
82 | }
83 |
84 | .spec.failed {
85 | background-color: #fbb;
86 | border-color: red;
87 | }
88 |
89 | .spec.passed {
90 | background-color: #bfb;
91 | border-color: green;
92 | }
93 |
94 | .spec.skipped {
95 | background-color: #bbb;
96 | }
97 |
98 | .messages {
99 | border-left: 1px dashed gray;
100 | padding-left: 1em;
101 | padding-right: 1em;
102 | }
103 |
104 | .passed {
105 | background-color: #cfc;
106 | display: none;
107 | }
108 |
109 | .failed {
110 | background-color: #fbb;
111 | }
112 |
113 | .skipped {
114 | color: #777;
115 | background-color: #eee;
116 | display: none;
117 | }
118 |
119 |
120 | /*.resultMessage {*/
121 | /*white-space: pre;*/
122 | /*}*/
123 |
124 | .resultMessage span.result {
125 | display: block;
126 | line-height: 2em;
127 | color: black;
128 | }
129 |
130 | .resultMessage .mismatch {
131 | color: black;
132 | }
133 |
134 | .stackTrace {
135 | white-space: pre;
136 | font-size: .8em;
137 | margin-left: 10px;
138 | max-height: 5em;
139 | overflow: auto;
140 | border: 1px inset red;
141 | padding: 1em;
142 | background: #eef;
143 | }
144 |
145 | .finished-at {
146 | padding-left: 1em;
147 | font-size: .6em;
148 | }
149 |
150 | .show-passed .passed,
151 | .show-skipped .skipped {
152 | display: block;
153 | }
154 |
155 |
156 | #jasmine_content {
157 | position:fixed;
158 | right: 100%;
159 | }
160 |
161 | .runner {
162 | border: 1px solid gray;
163 | display: block;
164 | margin: 5px 0;
165 | padding: 2px 0 2px 10px;
166 | }
167 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/signal-definitions-popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
12 |
13 |
14 |
15 |
24 |
25 |
26 |
27 |
28 | {{'PROPERTY.SIGNALDEFINITIONS.ID' | translate}}
29 |
30 |
31 |
32 |
33 | {{'PROPERTY.SIGNALDEFINITIONS.NAME' | translate}}
34 |
35 |
36 |
37 |
38 | {{'PROPERTY.SIGNALDEFINITIONS.SCOPE' | translate}}
39 |
40 | {{'PROPERTY.SIGNALDEFINITIONS.SCOPE-GLOBAL' | translate}}
41 | {{'PROPERTY.SIGNALDEFINITIONS.SCOPE-PROCESSINSTANCE' | translate}}
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/src/test/java/com/yfny/activityapi/ActivitiyApiApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.yfny.activityapi;
2 |
3 | import org.activiti.engine.HistoryService;
4 | import org.activiti.engine.IdentityService;
5 | import org.activiti.engine.ProcessEngine;
6 | import org.activiti.engine.ProcessEngines;
7 | import org.activiti.engine.history.HistoricProcessInstance;
8 | import org.activiti.engine.identity.Group;
9 | import org.junit.Test;
10 | import org.junit.runner.RunWith;
11 | import org.springframework.boot.test.context.SpringBootTest;
12 | import org.springframework.test.context.junit4.SpringRunner;
13 |
14 | import java.io.*;
15 | import java.util.List;
16 |
17 |
18 | @RunWith(SpringRunner.class)
19 | @SpringBootTest
20 | public class ActivitiyApiApplicationTests {
21 |
22 | @Test
23 | public void contextLoads() {
24 | }
25 |
26 | /**
27 | * 创建分组
28 | */
29 | @Test
30 | public void createGroup(){
31 | ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
32 | IdentityService is = engine.getIdentityService();
33 | for (int i=0;i<10;i++){
34 | Group group = is.newGroup(String.valueOf(i));
35 | group.setName("groupName_"+i);
36 | group.setType("groupType_"+i);
37 | is.saveGroup(group);
38 | }
39 | engine.close();
40 | }
41 |
42 | /**
43 | * 自定义条件查询
44 | */
45 | @Test
46 | public void selectGroup(){
47 | ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
48 | IdentityService is = engine.getIdentityService();
49 | List groups = is.createNativeGroupQuery().sql("SELECT * FROM act_id_group WHERE NAME_ LIKE #{name}").parameter("name","%groupName%").list();
50 | System.out.println(groups.get(0).getName());
51 | }
52 |
53 | @Test
54 | public void readFileByLines() {
55 | File file = new File("D:/zz.txt");
56 | //判断文件是否存在
57 | if (!file.exists()) {
58 | System.out.println("文件夹不存在");
59 | }else {
60 | BufferedReader reader = null;
61 | StringBuffer sb = new StringBuffer();
62 | try {
63 | reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
64 | String tempString = null;
65 | while ((tempString = reader.readLine()) != null) {
66 | int i = sb.lastIndexOf("}");
67 |
68 | sb.append(tempString);
69 | }
70 | reader.close();
71 | } catch (IOException e) {
72 | e.printStackTrace();
73 | } finally {
74 | if (reader != null) {
75 | try {
76 | reader.close();
77 | } catch (IOException e1) {
78 | }
79 | }
80 | }
81 | System.out.println("读取成功");
82 | }
83 | }
84 |
85 | @Test
86 | public void getTask(){
87 | ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
88 | HistoryService historyService = engine.getHistoryService();
89 | HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId("17507").singleResult();
90 | }
91 |
92 | }
93 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.2.13
3 | (c) 2010-2014 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(H,a,A){'use strict';function D(p,g){g=g||{};a.forEach(g,function(a,c){delete g[c]});for(var c in p)!p.hasOwnProperty(c)||"$"===c.charAt(0)&&"$"===c.charAt(1)||(g[c]=p[c]);return g}var v=a.$$minErr("$resource"),C=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;a.module("ngResource",["ng"]).factory("$resource",["$http","$q",function(p,g){function c(a,c){this.template=a;this.defaults=c||{};this.urlParams={}}function t(n,w,l){function r(h,d){var e={};d=x({},w,d);s(d,function(b,d){u(b)&&(b=b());var k;if(b&&
7 | b.charAt&&"@"==b.charAt(0)){k=h;var a=b.substr(1);if(null==a||""===a||"hasOwnProperty"===a||!C.test("."+a))throw v("badmember",a);for(var a=a.split("."),f=0,c=a.length;f boilerplate
39 |
40 | 1.2.2
41 | - Changed reduce to follow the letter of the spec with regard to having and
42 | owning properties.
43 | - Fixed a bug where RegExps pass as Functions in some engines in reduce.
44 |
45 | 1.2.1
46 | - Adding few fixes to make jshint happy.
47 | - Fix for issue #12, function expressions can cause scoping issues in IE.
48 | - NPM will minify on install or when `npm run-script install` is executed.
49 | - Adding .gitignore to avoid publishing dev dependencies.
50 |
51 | 1.2.0
52 | - Making script loadable as AMD module.
53 | - Adding `indexOf` to the list of safe shims.
54 |
55 | 1.1.0
56 | - Added support for accessor properties where possible (which is all browsers
57 | except IE).
58 | - Stop exposing bound function's (that are returned by
59 | `Function.prototype.bind`) internal properties (`bound, boundTo, boundArgs`)
60 | as in some cases (when using facade objects for example) capabilities of the
61 | enclosed functions will be leaked.
62 | - `Object.create` now explicitly sets `__proto__` property to guarantee
63 | correct behavior of `Object.getPrototypeOf`'s on all objects created using
64 | `Object.create`.
65 | - Switched to `===` from `==` where possible as it's slightly faster on older
66 | browsers that are target of this lib.
67 | - Added names to all anonymous functions to have a better stack traces.
68 |
69 | 1.0.0
70 | - fixed Date.toISODate, using UTC accessors, as in
71 | http://code.google.com/p/v8/source/browse/trunk/src/date.js?r=6120#986
72 | (arian)
73 |
74 | 0.0.4
75 | - Revised Object.getPrototypeOf to work in more cases
76 | in response to http://ejohn.org/blog/objectgetprototypeof/
77 | [issue #2] (fschaefer)
78 |
79 | 0.0.3
80 | - Fixed typos in Object.keys (samsonjs)
81 |
82 | 0.0.2
83 | Per kangax's recommendations:
84 | - faster Object.create(null)
85 | - fixed a function-scope function declaration statement in Object.create
86 |
87 | 0.0.1
88 | - fixed Object.create(null), in so far as that's possible
89 | - reworked Rhino Object.freeze(Function) bug detector and patcher
90 |
91 | 0.0.0
92 | - forked from narwhal-lib
93 |
94 |
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 |
6 | org.springframework.boot
7 | spring-boot-starter-parent
8 | 2.1.3.RELEASE
9 |
10 |
11 | com.yfny
12 | activity-api
13 | 0.0.1-SNAPSHOT
14 | activity-api
15 |
16 |
17 |
18 | org.activiti
19 | activiti-spring-boot-starter-basic
20 | 6.0.0
21 |
22 |
23 |
24 | org.activiti
25 | activiti-json-converter
26 | 6.0.0
27 |
28 |
29 |
30 | org.apache.xmlgraphics
31 | batik-transcoder
32 | 1.7
33 |
34 |
35 | org.apache.xmlgraphics
36 | batik-codec
37 | 1.7
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | mysql
51 | mysql-connector-java
52 | 5.1.47
53 | runtime
54 |
55 |
56 |
57 | org.springframework.boot
58 | spring-boot-starter-web
59 | 2.1.3.RELEASE
60 |
61 |
62 |
63 | org.springframework.boot
64 | spring-boot-starter-test
65 | test
66 |
67 |
68 | com.vaadin.external.google
69 | android-json
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 | org.springframework.boot
79 | spring-boot-maven-plugin
80 |
81 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/in-parameters-popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
12 |
25 |
26 |
27 |
43 |
PROPERTY.PARAMETER.EMPTY
44 |
45 |
46 |
47 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/out-parameters-popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
12 |
25 |
26 |
27 |
43 |
PROPERTY.PARAMETER.EMPTY
44 |
45 |
46 |
47 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/js/ActivityImpl.js:
--------------------------------------------------------------------------------
1 | /**
*
* @author Tom Baeyens
* @author (Javascript) Dmitry Farafonov
*/
var ActivityImpl = function(activityJson){
this.outgoingTransitions = [];
this.outgoingTransitions = [];
this.incomingTransitions = [];
this.activityBehavior = null;
this.parent = null;
this.isScope = false;
this.isAsync = false;
this.isExclusive = false;
this.x = -1;
this.y = -1;
this.width = -1;
this.height = -1;
this.properties = {};
//console.log("activityJson: ", activityJson);
if (activityJson != undefined) {
this.setId(activityJson.activityId);
for (var propertyName in activityJson.properties) {
this.setProperty(propertyName, activityJson.properties[propertyName]);
}
//this.setProperty("name", activityJson.activityName);
//this.setProperty("type", activityJson.activityType);
this.setX(activityJson.x);
this.setY(activityJson.y);
this.setWidth(activityJson.width);
this.setHeight(activityJson.height);
if (activityJson.multiInstance)
this.setProperty("multiInstance", activityJson.multiInstance);
if (activityJson.collapsed) {
this.setProperty("collapsed", activityJson.collapsed);
}
if (activityJson.isInterrupting != undefined)
this.setProperty("isInterrupting", activityJson.isInterrupting);
}
};
ActivityImpl.prototype = {
outgoingTransitions: [],
outgoingTransitions: [],
incomingTransitions: [],
activityBehavior: null,
parent: null,
isScope: false,
isAsync: false,
isExclusive: false,
id: null,
properties: {},
// Graphical information
x: -1,
y: -1,
width: -1,
height: -1,
setId: function(id){
this.id = id;
},
getId: function(){
return this.id;
},
setProperty: function(name, value){
this.properties[name] = value;
},
getProperty: function(name){
return this.properties[name];
},
createOutgoingTransition: function(transitionId){
},
toString: function(id) {
return "Activity("+id+")";
},
getParentActivity: function(){
/*
if (parent instanceof ActivityImpl) {
79 return (ActivityImpl) parent;
80 }
81 return null;
*/
return this.parent;
},
// restricted setters ///////////////////////////////////////////////////////
setOutgoingTransitions: function(outgoingTransitions){
this.outgoingTransitions = outgoingTransitions;
},
setParent: function(parent){
this.parent = parent;
},
setIncomingTransitions: function(incomingTransitions){
this.incomingTransitions = incomingTransitions;
},
// getters and setters //////////////////////////////////////////////////////
getOutgoingTransitions: function(){
return this.outgoingTransitions;
},
getActivityBehavior: function(){
return this.activityBehavior;
},
setActivityBehavior: function(activityBehavior){
this.activityBehavior = activityBehavior;
},
getParent: function(){
return this.parent;
},
getIncomingTransitions: function(){
return this.incomingTransitions;
},
isScope: function(){
return this.isScope;
},
setScope: function(isScope){
this.isScope = isScope;
},
getX: function(){
return this.x;
},
setX: function(x){
this.x = x;
},
getY: function(){
return this.y;
},
setY: function(y){
this.y = y;
},
getWidth: function(){
return this.width;
},
setWidth: function(width){
this.width = width;
},
getHeight: function(){
return this.height;
},
setHeight: function(height){
this.height = height;
},
isAsync: function() {
return this.isAsync;
},
setAsync: function(isAsync) {
this.isAsync = isAsync;
},
isExclusive: function() {
return this.isExclusive;
},
setExclusive: function(isExclusive) {
this.isExclusive = isExclusive;
},
vvoid: function(){}
};
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/js/jquery/jquery.progressbar.js:
--------------------------------------------------------------------------------
1 | /*
2 | * @ Dmitry Farafonov
3 | */
4 |
5 | (function($){
6 | $.ProgressBar = function(options) {
7 | this.element = $(options.boundingBox);
8 | if (options.on && options.on.complete){
9 | this.onComplete = options.on.complete;
10 | }
11 | if (options.on && options.on.valueChange){
12 | this.onValueChange = options.on.valueChange;
13 | }
14 |
15 | this._create();
16 |
17 | if (options.label)
18 | this.set("label", options.label);
19 | if (options.value)
20 | this.value(options.value);
21 | if (options.max)
22 | this.set("max", options.max);
23 | };
24 | $.ProgressBar.prototype = {
25 | options: {
26 | value: 0,
27 | max: 100
28 | },
29 |
30 | min: 0,
31 |
32 | _create: function() {
33 | this.element
34 | .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
35 | .attr({
36 | role: "progressbar",
37 | "aria-valuemin": this.min,
38 | "aria-valuemax": this.options.max,
39 | "aria-valuenow": this._value()
40 | });
41 |
42 | this.valueDiv = $( "
" )
43 | .appendTo( this.element );
44 |
45 | this.valueDiv = $( "" )
46 | .appendTo( this.element );
47 |
48 | this.oldValue = this._value();
49 | this._refreshValue();
50 | },
51 |
52 | _destroy: function() {
53 | this.element
54 | .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
55 | .removeAttr( "role" )
56 | .removeAttr( "aria-valuemin" )
57 | .removeAttr( "aria-valuemax" )
58 | .removeAttr( "aria-valuenow" );
59 |
60 | this.valueDiv.remove();
61 | },
62 |
63 | value: function( newValue ) {
64 | if ( newValue === undefined ) {
65 | return this._value();
66 | }
67 |
68 | this._setOption( "value", newValue );
69 | return this;
70 | },
71 |
72 | _setOption: function( key, value ) {
73 | if ( key === "value" ) {
74 | //var oldVal = this.options.value;
75 | this.options.value = value;
76 | this._refreshValue();
77 |
78 | if (this.onValueChange)
79 | this.onValueChange.apply(this, [{oldVal: this.oldValue, newVal: value}]);
80 |
81 | if ( this._value() === this.options.max ) {
82 | //this._trigger( "complete" );
83 | if (this.onComplete)
84 | this.onComplete.apply(this);
85 | }
86 | } else if (key === "label") {
87 | $(this.element).find(".ui-progressbar-label").html(value);
88 | } else if (key === "max") {
89 | this.options.max = value;
90 | }
91 |
92 | //this._super( key, value );
93 | },
94 |
95 | _value: function() {
96 | var val = this.options.value;
97 | // normalize invalid value
98 | if ( typeof val !== "number" ) {
99 | val = 0;
100 | }
101 | return Math.min( this.options.max, Math.max( this.min, val ) );
102 | },
103 |
104 | _percentage: function() {
105 | return 100 * this._value() / this.options.max;
106 | },
107 |
108 | _refreshValue: function() {
109 | var value = this.value(),
110 | percentage = this._percentage();
111 |
112 | if ( this.oldValue !== value ) {
113 | this.oldValue = value;
114 | //this._trigger( "change" );
115 | }
116 |
117 | this.valueDiv
118 | .toggle( value > this.min )
119 | .toggleClass( "ui-corner-right", value === this.options.max )
120 | .width( percentage.toFixed(0) + "%" );
121 | this.element.attr( "aria-valuenow", value );
122 |
123 | //$(this.element).find(".ui-progressbar-label").html(value + "%");
124 | },
125 |
126 | set: function(key, value){
127 | this._setOption(key, value);
128 | }
129 | };
130 |
131 | })( jQuery );
--------------------------------------------------------------------------------
/src/main/java/com/yfny/activityapi/utils/ActivitiUtils.java:
--------------------------------------------------------------------------------
1 | package com.yfny.activityapi.utils;
2 |
3 | import org.activiti.engine.IdentityService;
4 | import org.activiti.engine.RepositoryService;
5 | import org.activiti.engine.RuntimeService;
6 | import org.activiti.engine.repository.Deployment;
7 | import org.activiti.engine.repository.ProcessDefinition;
8 | import org.activiti.engine.runtime.ProcessInstance;
9 | import org.springframework.beans.factory.annotation.Autowired;
10 | import org.springframework.stereotype.Component;
11 |
12 | import java.io.InputStream;
13 | import java.util.zip.ZipInputStream;
14 |
15 |
16 | /**
17 | *
18 | * Created by jinboYu on 2019/3/5
19 | */
20 | @Component
21 | public class ActivitiUtils {
22 |
23 | @Autowired
24 | private RepositoryService repositoryService;
25 |
26 | @Autowired
27 | private RuntimeService runtimeService;
28 |
29 | @Autowired
30 | private IdentityService identityService;
31 | /**
32 | * 启动流程引擎
33 | * @param userId 流程发起人ID
34 | * @param key 流程ID
35 | * @return
36 | */
37 | // public static ProcessInstance getProcessInstance(String userId,String key){
38 | // if (processInstance==null){
39 | // synchronized (ProcessInstance.class){
40 | // if (processInstance==null){
41 | //// //获取流程引擎对象
42 | // ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
43 | // //设置流程发起人
44 | // processEngine.getIdentityService().setAuthenticatedUserId(userId);
45 | // //启动流程
46 | // ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey(key);
47 | // return processInstance;
48 | //// ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
49 | //// Deployment deployment = processEngine.getRepositoryService()//与流程定义和部署对象相关的Service
50 | //// .createDeployment()//创建一个部署对象
51 | //// .name("流程定义")//添加部署名称
52 | //// .addClasspathResource("processes/xqd.bpmn")//从classpath的资源中加载,一次只能加载一个文件
53 | //// .addClasspathResource("processes/xqd.png")
54 | //// .key("xqd")
55 | //// .deploy();//完成部署
56 | //// return processEngine.getRuntimeService().startProcessInstanceByKey(deployment.getKey());
57 | // }else {
58 | // return processInstance;
59 | // }
60 | // }
61 | // }else {
62 | // return processInstance;
63 | // }
64 | // }
65 |
66 | /**
67 | * 启动流程引擎
68 | *
69 | * @param userId 流程发起人ID
70 | * @param key 流程ID
71 | * @return
72 | */
73 | public ProcessInstance getProcessInstance(String userId, String key) {
74 | //读取配置文件流
75 | InputStream in = this.getClass().getClassLoader().getSystemResourceAsStream("processes/" + key + ".zip");
76 |
77 | ZipInputStream zipInputStream = new ZipInputStream(in);
78 |
79 | //部署流程实例
80 | Deployment deployment = repositoryService
81 | .createDeployment()
82 | .addZipInputStream(zipInputStream)
83 | .key(key)
84 | .deploy();
85 | identityService.setAuthenticatedUserId(userId);
86 |
87 | //获取流程定义
88 | ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).singleResult();
89 | //根据流程定义启动流程
90 | return runtimeService.startProcessInstanceById(processDefinition.getId());
91 | }
92 |
93 |
94 | }
95 |
--------------------------------------------------------------------------------
/src/main/resources/public/diagram-viewer/js/jquery/jquery.asyncqueue.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the jquery plugin "asyncQueue".
3 | *
4 | * (c) Sebastien Roch
5 | * @author (parallel) Dmitry Farafonov
6 | *
7 | * For the full copyright and license information, please view the LICENSE
8 | * file that was distributed with this source code.
9 | */
10 | (function($){
11 | $.AsyncQueue = function() {
12 | var that = this,
13 | queue = [],
14 | completeFunc,
15 | failureFunc,
16 | paused = false,
17 | lastCallbackData,
18 | _run,
19 | _complete,
20 | inQueue = 0,
21 | defaultTimeOut = 10;
22 |
23 | _run = function() {
24 | var f = queue.shift();
25 |
26 | if (f) {
27 | inQueue++;
28 | setTimeout(function(){
29 | f.fn.apply(that, [that]);
30 |
31 | if (!f.isParallel)
32 | if (paused === false) {
33 | _run();
34 | }
35 | inQueue --;
36 | if (inQueue == 0 && queue.length == 0)
37 | _complete();
38 | }, f.timeOut);
39 |
40 | if (f.isParallel)
41 | if (paused === false) {
42 | _run();
43 | }
44 | }
45 | };
46 |
47 | _complete = function(){
48 | if (completeFunc)
49 | completeFunc.apply(that, [that]);
50 | };
51 |
52 | this.onComplete = function(func) {
53 | completeFunc = func;
54 | };
55 |
56 | this.onFailure = function(func) {
57 | failureFunc = func;
58 | };
59 |
60 | this.add = function(func) {
61 | // TODO: add callback for queue[i] complete
62 |
63 | var obj = arguments[0];
64 | if (obj && Object.prototype.toString.call(obj) === "[object Array]") {
65 | var fn = arguments[1];
66 | var timeOut = (typeof(arguments[2]) != "undefined")? arguments[2] : defaultTimeOut;
67 | if (typeof(fn) == "function") {
68 | for(var i = 0; i < obj.length; i++) {
69 | var f = function(objx){
70 | queue.push({isParallel: true, fn: function(){fn.apply(that, [that, objx]);}, timeOut: timeOut});
71 | }(obj[i])
72 | }
73 | }
74 | } else {
75 | var fn = arguments[0];
76 | var timeOut = (typeof(arguments[1]) != "undefined")? arguments[2] : defaultTimeOut;
77 | queue.push({isParallel: false, fn: func, timeOut: timeOut});
78 | }
79 | return this;
80 | };
81 |
82 | this.addParallel = function(func, timeOut) {
83 | // TODO: add callback for queue[i] complete
84 |
85 | queue.push({isParallel: true, fn: func, timeOut: timeOut});
86 | return this;
87 | };
88 |
89 | this.storeData = function(dataObject) {
90 | lastCallbackData = dataObject;
91 | return this;
92 | };
93 |
94 | this.lastCallbackData = function () {
95 | return lastCallbackData;
96 | };
97 |
98 | this.run = function() {
99 | paused = false;
100 | _run();
101 | };
102 |
103 | this.pause = function () {
104 | paused = true;
105 | return this;
106 | };
107 |
108 | this.failure = function() {
109 | paused = true;
110 | if (failureFunc) {
111 | var args = [that];
112 | for(i = 0; i < arguments.length; i++) {
113 | args.push(arguments[i]);
114 | }
115 | failureFunc.apply(that, args);
116 | }
117 | };
118 |
119 | this.size = function(){
120 | return queue.length;
121 | };
122 |
123 | return this;
124 | }
125 | })(jQuery);
126 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/mousetrap-1.4.5.min.js:
--------------------------------------------------------------------------------
1 | /* mousetrap v1.4.5 craig.is/killing/mice */
2 | (function(J,r,f){function s(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent("on"+b,c)}function A(a){if("keypress"==a.type){var b=String.fromCharCode(a.which);a.shiftKey||(b=b.toLowerCase());return b}return h[a.which]?h[a.which]:B[a.which]?B[a.which]:String.fromCharCode(a.which).toLowerCase()}function t(a){a=a||{};var b=!1,c;for(c in n)a[c]?b=!0:n[c]=0;b||(u=!1)}function C(a,b,c,d,e,v){var g,k,f=[],h=c.type;if(!l[a])return[];"keyup"==h&&w(a)&&(b=[a]);for(g=0;gg||h.hasOwnProperty(g)&&(p[h[g]]=g)}e=p[c]?"keydown":"keypress"}"keypress"==e&&f.length&&(e="keydown");return{key:d,modifiers:f,action:e}}function F(a,b,c,d,e){q[a+":"+c]=b;a=a.replace(/\s+/g," ");var f=a.split(" ");1":".","?":"/","|":"\\"},G={option:"alt",command:"meta","return":"enter",escape:"esc",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},p,l={},q={},n={},D,z=!1,I=!1,u=!1;for(f=1;20>f;++f)h[111+f]="f"+f;for(f=0;9>=f;++f)h[f+96]=f;s(r,"keypress",y);s(r,"keydown",y);s(r,"keyup",y);var m={bind:function(a,b,c){a=a instanceof Array?a:[a];for(var d=0;d0){this.init(type,text);}}
29 | PathToken.prototype.init=function(type,text){this.type=type;this.text=text;};
30 | PathToken.prototype.typeis=function(type){return this.type==type;}
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/angular-route_1.2.13/angular-route.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.2.13
3 | (c) 2010-2014 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(h,e,A){'use strict';function u(w,q,k){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,c,b,f,n){function y(){l&&(l.$destroy(),l=null);g&&(k.leave(g),g=null)}function v(){var b=w.current&&w.current.locals;if(e.isDefined(b&&b.$template)){var b=a.$new(),f=w.current;g=n(b,function(d){k.enter(d,null,g||c,function(){!e.isDefined(t)||t&&!a.$eval(t)||q()});y()});l=f.scope=b;l.$emit("$viewContentLoaded");l.$eval(h)}else y()}var l,g,t=b.autoscroll,h=b.onload||"";
7 | a.$on("$routeChangeSuccess",v);v()}}}function z(e,h,k){return{restrict:"ECA",priority:-400,link:function(a,c){var b=k.current,f=b.locals;c.html(f.$template);var n=e(c.contents());b.controller&&(f.$scope=a,f=h(b.controller,f),b.controllerAs&&(a[b.controllerAs]=f),c.data("$ngControllerController",f),c.children().data("$ngControllerController",f));n(a)}}}h=e.module("ngRoute",["ng"]).provider("$route",function(){function h(a,c){return e.extend(new (e.extend(function(){},{prototype:a})),c)}function q(a,
8 | e){var b=e.caseInsensitiveMatch,f={originalPath:a,regexp:a},h=f.keys=[];a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)([\?\*])?/g,function(a,e,b,c){a="?"===c?c:null;c="*"===c?c:null;h.push({name:b,optional:!!a});e=e||"";return""+(a?"":e)+"(?:"+(a?e:"")+(c&&"(.+?)"||"([^/]+)")+(a||"")+")"+(a||"")}).replace(/([\/$\*])/g,"\\$1");f.regexp=RegExp("^"+a+"$",b?"i":"");return f}var k={};this.when=function(a,c){k[a]=e.extend({reloadOnSearch:!0},c,a&&q(a,c));if(a){var b="/"==a[a.length-1]?a.substr(0,a.length-
9 | 1):a+"/";k[b]=e.extend({redirectTo:a},q(b,c))}return this};this.otherwise=function(a){this.when(null,a);return this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache","$sce",function(a,c,b,f,n,q,v,l){function g(){var d=t(),m=r.current;if(d&&m&&d.$$route===m.$$route&&e.equals(d.pathParams,m.pathParams)&&!d.reloadOnSearch&&!x)m.params=d.params,e.copy(m.params,b),a.$broadcast("$routeUpdate",m);else if(d||m)x=!1,a.$broadcast("$routeChangeStart",d,m),(r.current=
10 | d)&&d.redirectTo&&(e.isString(d.redirectTo)?c.path(u(d.redirectTo,d.params)).search(d.params).replace():c.url(d.redirectTo(d.pathParams,c.path(),c.search())).replace()),f.when(d).then(function(){if(d){var a=e.extend({},d.resolve),c,b;e.forEach(a,function(d,c){a[c]=e.isString(d)?n.get(d):n.invoke(d)});e.isDefined(c=d.template)?e.isFunction(c)&&(c=c(d.params)):e.isDefined(b=d.templateUrl)&&(e.isFunction(b)&&(b=b(d.params)),b=l.getTrustedResourceUrl(b),e.isDefined(b)&&(d.loadedTemplateUrl=b,c=q.get(b,
11 | {cache:v}).then(function(a){return a.data})));e.isDefined(c)&&(a.$template=c);return f.all(a)}}).then(function(c){d==r.current&&(d&&(d.locals=c,e.copy(d.params,b)),a.$broadcast("$routeChangeSuccess",d,m))},function(c){d==r.current&&a.$broadcast("$routeChangeError",d,m,c)})}function t(){var a,b;e.forEach(k,function(f,k){var p;if(p=!b){var s=c.path();p=f.keys;var l={};if(f.regexp)if(s=f.regexp.exec(s)){for(var g=1,q=s.length;g
14 | * Created by jinboYu on 2019/3/5
15 | */
16 | @RestController
17 | @RequestMapping(value = "/task")
18 | public class TaskController {
19 |
20 |
21 |
22 | @Autowired
23 | private FlowTaskService flowTaskService;
24 |
25 |
26 | /**
27 | * 根据分组ID获取任务列表,带分页
28 | *
29 | * @param groupId 分组ID
30 | * @param pageNum 当前页数
31 | * @param pageSize 显示数量
32 | * @return
33 | */
34 | @GetMapping(value = "/getDemandByGroupId/{groupId}/{pageNum}/{pageSize}")
35 | public String getDemandByGroupId(@PathVariable String groupId, @PathVariable int pageNum, @PathVariable int pageSize) throws Exception {
36 | return flowTaskService.getDemandByGroupId(groupId,pageNum,pageSize);
37 | }
38 |
39 | /**
40 | * 根据当前用户Id获取任务列表,带分页
41 | *
42 | * @param userId 用户ID
43 | * @param pageNum 当前页数
44 | * @param pageSize 显示数量
45 | * @return
46 | */
47 | @GetMapping(value = "/getDemandByUserId/{userId}/{pageNum}/{pageSize}")
48 | public String getDemandByUserId(@PathVariable String userId, @PathVariable int pageNum, @PathVariable int pageSize) throws Exception {
49 | return flowTaskService.getDemandByUserId(userId,pageNum,pageSize);
50 | }
51 |
52 | @GetMapping(value = "/getTaskListByUserId/{userId}/{pageNum}/{pageSize}")
53 | public List getTaskListByUserId(@PathVariable String userId, @PathVariable int pageNum, @PathVariable int pageSize) throws Exception {
54 | return flowTaskService.getTaskListByUserId(userId,pageNum,pageSize);
55 | }
56 |
57 |
58 | /**
59 | * 创建流程并完成第一个任务
60 | *
61 | * @param userId 流程发起人ID
62 | * @param key 流程ID
63 | * @param variables 流程变量
64 | * @return 下一个任务的ID
65 | */
66 | @PostMapping(value = "/create/{userId}/{key}")
67 | public String createTask(@PathVariable String userId, @PathVariable String key, @RequestBody Map variables) throws Exception {
68 | String taskId = flowTaskService.createTask(userId, key, variables);
69 | return taskId;
70 | }
71 |
72 | /**
73 | * 完成流程任务
74 | *
75 | * @param taskId 任务ID
76 | * @param variables 流程变量
77 | * @return 返回下一个任务的ID
78 | */
79 | @PostMapping(value = "/fulfil/{taskId}")
80 | public String fulfilTask(@PathVariable String taskId, @RequestBody Map variables) throws Exception {
81 | return flowTaskService.fulfilTask(taskId, variables);
82 | }
83 |
84 |
85 | /**
86 | * 撤销流程
87 | *
88 | * @param taskId 流程任务ID
89 | * @return
90 | */
91 | @PostMapping(value = "/revocationTask/{taskId}")
92 | public String revocationTask(@PathVariable String taskId) throws Exception {
93 | int i = flowTaskService.revocationTask(taskId);
94 | if (i == 1) {
95 | return "撤销成功";
96 | } else if (i==2){
97 | return "撤销失败,任务不存在";
98 | }else {
99 | return "撤销失败";
100 | }
101 | }
102 |
103 | /**
104 | * 创建用户
105 | *
106 | * @param userId
107 | * @return
108 | */
109 | @PostMapping(value = "/createUser/{userId}")
110 | public String createUser(@PathVariable String userId) throws Exception {
111 | int i = flowTaskService.createUser(userId);
112 | if (i == 1) {
113 | return "创建成功";
114 | }
115 | return "创建失败";
116 | }
117 | }
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/editor/css/editor.css:
--------------------------------------------------------------------------------
1 | body, html {
2 | font-family: tahoma,arial,helvetica,sans-serif;
3 | font-size: 12px;
4 | }
5 |
6 | /*********
7 | * SVG Style
8 | */
9 |
10 | text,
11 | text * {
12 | cursor:default;
13 | -webkit-user-select: none;
14 | }
15 |
16 | /*********
17 | * HEADER SECTION
18 | *
19 | */
20 |
21 | #oryx_canvas_htmlContainer {
22 |
23 | }
24 |
25 | .ORYX_Editor {
26 | background: white;
27 | border: none;
28 | margin:-5px;
29 | margin-top:0px;
30 | width:1200px;
31 | height:600px;
32 | }
33 |
34 | .icon-large {
35 | width:18px !important;
36 | }
37 |
38 | #oryxcanvas {
39 | width:1200px;
40 | height:600px;
41 | }
42 |
43 | /** Resizer for the Canvas **/
44 | .canvas_resize_indicator_area {
45 |
46 | margin :auto;
47 | display :block;
48 | height :30px;
49 | left :20%;
50 | position :absolute;
51 | text-align :center;
52 | top :0;
53 | width :60%;
54 |
55 | }
56 |
57 | .canvas_resize_indicator {
58 |
59 | width : 15px;
60 | height : 15px;
61 | position : absolute;
62 | display : block;
63 | margin : auto;
64 | opacity : 0.6;
65 | }
66 |
67 | .canvas_resize_indicator:hover {
68 |
69 | opacity : 1.0;
70 | }
71 | /** End Resizer **/
72 |
73 | .Oryx_down {
74 |
75 | }
76 |
77 | .Oryx_button img {
78 | width:16px;
79 | height:16px;
80 | top:0px;
81 | left:0px;
82 | line-height: 16px;
83 | }
84 |
85 | .Oryx_Right .Oryx_button,
86 | .Oryx_Left .Oryx_button,
87 | .Oryx_Top .Oryx_button,
88 | .Oryx_Bottom .Oryx_button {
89 | opacity: 0.5;
90 | }
91 |
92 | .Oryx_button.x-opacity-0 {
93 | opacity: 0;
94 | display:none;
95 | }
96 |
97 | .Oryx_button.x-opacity-10 {
98 | opacity: 0.1;
99 | }
100 |
101 | .Oryx_button.x-opacity-20 {
102 | opacity: 0.2;
103 | }
104 |
105 | .Oryx_button.x-opacity-50 {
106 | opacity: 0.5;
107 | }
108 |
109 | .Oryx_Right:hover .Oryx_button,
110 | .Oryx_Left:hover .Oryx_button,
111 | .Oryx_Top:hover .Oryx_button,
112 | .Oryx_Bottom:hover .Oryx_button {
113 | opacity: 0.7;
114 | display:block;
115 | }
116 |
117 |
118 | .Oryx_button img {
119 | top:0px;
120 | }
121 |
122 | .Oryx_Left img {
123 | top:0px;
124 | }
125 |
126 | .Oryx_button {
127 | width:24px;
128 | height:24px;
129 | padding:2px;
130 | position:absolute;
131 | background-color: #ffffff;
132 | background-color: rgba(255,255,255,0.7);
133 | cursor: pointer;
134 | }
135 |
136 | .Oryx_button_with_caption {
137 | width:inherit;
138 | height:16px;
139 | padding:4px;
140 | position:absolute;
141 | }
142 |
143 | /*** Resizer ***/
144 |
145 | .resizer_southeast,
146 | .resizer_northwest {
147 | width:12px;
148 | height:12px;
149 | position:relative;
150 | background-color: transparent;
151 | background-repeat:no-repeat;
152 | }
153 |
154 | /*** Selection Frame ***/
155 |
156 | .Oryx_SelectionFrame{
157 | position:absolute;
158 | border:1px dotted gray;
159 | background:none;
160 | }
161 |
162 | .LoadingIndicator {
163 | background-image: url('../../images/loading.gif');
164 | }
165 |
166 | .Oryx_hover, .Oryx_button:hover {
167 | background-color: #999999;
168 | background-color: rgba(193, 229, 238, 0.7);
169 | opacity: 1 !important;
170 | -webkit-border-radius: 3px;
171 | -moz-border-radius: 3px;
172 | border-radius: 3px;
173 | }
174 |
175 | .ValidateButton {
176 | width:24px;
177 | height:24px;
178 | padding:2px;
179 | position:absolute;
180 | cursor: pointer;
181 | }
182 |
183 | .ValidateButton:hover {
184 | background-color: #999999;
185 | background-color: rgba(193, 229, 238, 0.7);
186 | opacity: 1 !important;
187 | -webkit-border-radius: 3px;
188 | -moz-border-radius: 3px;
189 | border-radius: 3px;
190 | }
191 |
192 | .resizer_southeast {
193 | background-image:url(../../images/se-handle-dark.gif);
194 | cursor: se-resize;
195 | background-position: 4px 4px;
196 | }
197 |
198 | .resizer_northwest {
199 | background-image:url(../../images/nw-handle-dark.gif);
200 | cursor: nw-resize;
201 | background-position: -2px -2px;
202 | }
203 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties/fields-popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
12 |
25 |
26 |
27 |
28 |
29 |
30 | {{'PROPERTY.FIELDS.NAME' | translate}}
31 |
32 |
33 |
34 |
35 | {{'PROPERTY.FIELDS.STRINGVALUE' | translate}}
36 |
37 |
38 |
39 |
40 | {{'PROPERTY.FIELDS.EXPRESSION' | translate}}
41 |
42 |
43 |
44 |
45 | {{'PROPERTY.FIELDS.STRING' | translate}}
46 |
47 |
48 |
49 |
50 |
PROPERTY.FIELDS.EMPTY
51 |
52 |
53 |
54 |
55 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.2.13
3 | (c) 2010-2014 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(p,h,q){'use strict';function E(a){var e=[];s(e,h.noop).chars(a);return e.join("")}function k(a){var e={};a=a.split(",");var d;for(d=0;d=c;d--)e.end&&e.end(f[d]);f.length=c}}var b,g,f=[],l=a;for(f.last=function(){return f[f.length-1]};a;){g=!0;if(f.last()&&x[f.last()])a=a.replace(RegExp("(.*)<\\s*\\/\\s*"+f.last()+"[^>]*>","i"),function(b,a){a=a.replace(H,"$1").replace(I,"$1");e.chars&&e.chars(r(a));return""}),c("",f.last());else{if(0===a.indexOf("\x3c!--"))b=a.indexOf("--",4),0<=b&&a.lastIndexOf("--\x3e",b)===b&&(e.comment&&e.comment(a.substring(4,b)),a=a.substring(b+3),g=!1);else if(y.test(a)){if(b=a.match(y))a=
8 | a.replace(b[0],""),g=!1}else if(J.test(a)){if(b=a.match(z))a=a.substring(b[0].length),b[0].replace(z,c),g=!1}else K.test(a)&&(b=a.match(A))&&(a=a.substring(b[0].length),b[0].replace(A,d),g=!1);g&&(b=a.indexOf("<"),g=0>b?a:a.substring(0,b),a=0>b?"":a.substring(b),e.chars&&e.chars(r(g)))}if(a==l)throw L("badparse",a);l=a}c()}function r(a){if(!a)return"";var e=M.exec(a);a=e[1];var d=e[3];if(e=e[2])n.innerHTML=e.replace(//g,">")}function s(a,e){var d=!1,c=h.bind(a,a.push);return{start:function(a,g,f){a=h.lowercase(a);!d&&x[a]&&(d=a);d||!0!==C[a]||(c("<"),c(a),h.forEach(g,function(d,f){var g=h.lowercase(f),k="img"===a&&"src"===g||"background"===g;!0!==O[g]||!0===D[g]&&!e(d,k)||(c(" "),c(f),c('="'),c(B(d)),c('"'))}),c(f?"/>":">"))},end:function(a){a=h.lowercase(a);d||!0!==C[a]||(c(""),c(a),c(">"));a==d&&(d=!1)},chars:function(a){d||
10 | c(B(a))}}}var L=h.$$minErr("$sanitize"),A=/^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,z=/^<\s*\/\s*([\w:-]+)[^>]*>/,G=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,K=/^,J=/^<\s*\//,H=/\x3c!--(.*?)--\x3e/g,y=/]*?)>/i,I=/]/,d=/^mailto:/;return function(c,b){function g(a){a&&m.push(E(a))}function f(a,c){m.push("');g(c);m.push(" ")}if(!c)return c;for(var l,k=c,m=[],n,p;l=k.match(e);)n=l[0],l[2]==l[3]&&(n="mailto:"+n),p=l.index,g(k.substr(0,p)),f(n,l[0].replace(d,"")),k=k.substring(p+l[0].length);g(k);return a(m.join(""))}}])})(window,window.angular);
14 | //# sourceMappingURL=angular-sanitize.min.js.map
15 |
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/configuration/properties-default-controllers.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Activiti Modeler component part of the Activiti project
3 | * Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved.
4 | *
5 | * This library is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU Lesser General Public
7 | * License as published by the Free Software Foundation; either
8 | * version 2.1 of the License, or (at your option) any later version.
9 | *
10 | * This library is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * Lesser General Public License for more details.
14 |
15 | * You should have received a copy of the GNU Lesser General Public
16 | * License along with this library; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 |
20 | /*
21 | * String controller
22 | */
23 |
24 | var KisBpmStringPropertyCtrl = [ '$scope', function ($scope) {
25 |
26 | $scope.shapeId = $scope.selectedShape.id;
27 | $scope.valueFlushed = false;
28 | /** Handler called when input field is blurred */
29 | $scope.inputBlurred = function() {
30 | $scope.valueFlushed = true;
31 | if ($scope.property.value) {
32 | $scope.property.value = $scope.property.value.replace(/(<([^>]+)>)/ig,"");
33 | }
34 | $scope.updatePropertyInModel($scope.property);
35 | };
36 |
37 | $scope.enterPressed = function(keyEvent) {
38 | if (keyEvent && keyEvent.which === 13) {
39 | keyEvent.preventDefault();
40 | $scope.inputBlurred(); // we want to do the same as if the user would blur the input field
41 | }
42 | };
43 |
44 | $scope.$on('$destroy', function controllerDestroyed() {
45 | if(!$scope.valueFlushed) {
46 | if ($scope.property.value) {
47 | $scope.property.value = $scope.property.value.replace(/(<([^>]+)>)/ig,"");
48 | }
49 | $scope.updatePropertyInModel($scope.property, $scope.shapeId);
50 | }
51 | });
52 |
53 | }];
54 |
55 | /*
56 | * Boolean controller
57 | */
58 |
59 | var KisBpmBooleanPropertyCtrl = ['$scope', function ($scope) {
60 |
61 | $scope.changeValue = function() {
62 | if ($scope.property.key === 'oryx-defaultflow' && $scope.property.value) {
63 | var selectedShape = $scope.selectedShape;
64 | if (selectedShape) {
65 | var incomingNodes = selectedShape.getIncomingShapes();
66 | if (incomingNodes && incomingNodes.length > 0) {
67 | // get first node, since there can be only one for a sequence flow
68 | var rootNode = incomingNodes[0];
69 | var flows = rootNode.getOutgoingShapes();
70 | if (flows && flows.length > 1) {
71 | // in case there are more flows, check if another flow is already defined as default
72 | for (var i = 0; i < flows.length; i++) {
73 | if (flows[i].resourceId != selectedShape.resourceId) {
74 | var defaultFlowProp = flows[i].properties['oryx-defaultflow'];
75 | if (defaultFlowProp) {
76 | flows[i].setProperty('oryx-defaultflow', false, true);
77 | }
78 | }
79 | }
80 | }
81 | }
82 | }
83 | }
84 | $scope.updatePropertyInModel($scope.property);
85 | };
86 |
87 | }];
88 |
89 | /*
90 | * Text controller
91 | */
92 |
93 | var KisBpmTextPropertyCtrl = [ '$scope', '$modal', function($scope, $modal) {
94 |
95 | var opts = {
96 | template: 'editor-app/configuration/properties/text-popup.html?version=' + Date.now(),
97 | scope: $scope
98 | };
99 |
100 | // Open the dialog
101 | $modal(opts);
102 | }];
103 |
104 | var KisBpmTextPropertyPopupCtrl = ['$scope', function($scope) {
105 |
106 | $scope.save = function() {
107 | $scope.updatePropertyInModel($scope.property);
108 | $scope.close();
109 | };
110 |
111 | $scope.close = function() {
112 | $scope.property.mode = 'read';
113 | $scope.$hide();
114 | };
115 | }];
--------------------------------------------------------------------------------
/src/main/resources/public/editor-app/libs/angular-dragdrop.min-1.0.3.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Implementing Drag and Drop functionality in AngularJS is easier than ever.
3 | * Demo: http://codef0rmer.github.com/angular-dragdrop/
4 | *
5 | * @version 1.0.3
6 | *
7 | * (c) 2013 Amit Gharat a.k.a codef0rmer - amitgharat.wordpress.com
8 | */
9 | var jqyoui=angular.module("ngDragDrop",[]).service("ngDragDropService",["$timeout","$parse",function($timeout,$parse){this.callEventCallback=function(scope,callbackName,event,ui){if(!callbackName){return}var args=[event,ui];var match=callbackName.match(/^(.+)\((.+)\)$/);if(match!==null){callbackName=match[1];values=eval("["+match[0].replace(/^(.+)\(/,"").replace(/\)/,"")+"]");args.push.apply(args,values)}scope[callbackName].apply(scope,args)};this.invokeDrop=function(e,t,n,r){var i="",s="",o={},u={},a=null,f={},l={},c,h,p=null,d=t.scope(),v=e.scope();i=e.attr("ng-model");s=t.attr("ng-model");c=v.$eval(i);h=d.$eval(s);p=t.find("[jqyoui-draggable]:last");u=d.$eval(t.attr("jqyoui-droppable"))||[];o=v.$eval(e.attr("jqyoui-draggable"))||[];o.index=this.fixIndex(v,o,c);u.index=this.fixIndex(d,u,h);a=angular.isArray(c)?o.index:null;f=angular.isArray(c)?c[a]:c;if(angular.isArray(h)&&u&&u.index!==undefined){l=h[u.index]}else if(!angular.isArray(h)){l=h}else{l={}}if(o.animate===true){this.move(e,p.length>0?p:t,null,"fast",u,null);this.move(p.length>0&&!u.multiple?p:[],e.parent("[jqyoui-droppable]"),jqyoui.startXY,"fast",u,function(){$timeout(function(){e.css({position:"relative",left:"",top:""});p.css({position:"relative",left:"",top:""});this.mutateDraggable(v,u,o,i,s,l,e);this.mutateDroppable(d,u,o,s,f,a);this.callEventCallback(d,u.onDrop,n,r)}.bind(this))}.bind(this))}else{$timeout(function(){this.mutateDraggable(v,u,o,i,s,l,e);this.mutateDroppable(d,u,o,s,f,a);this.callEventCallback(d,u.onDrop,n,r)}.bind(this))}};this.move=function(e,t,n,r,i,s){if(e.length===0){if(s){window.setTimeout(function(){s()},300)}return false}var o=9999,u=e.offset(),a=t&&t.is(":visible");if(n===null&&t.length>0){if(t.attr("jqyoui-draggable")!==undefined&&t.attr("ng-model")!==undefined&&t.is(":visible")&&i&&i.multiple){n=t.offset();if(i.stack===false){n.left+=t.outerWidth(true)}else{n.top+=t.outerHeight(true)}}else{n=t.css({visibility:"hidden",display:"block"}).offset();t.css({visibility:"",display:a?"":"none"})}}e.css({position:"absolute","z-index":o}).css(u).animate(n,r,function(){if(s)s()})};this.mutateDroppable=function(e,t,n,r,i,s){var o=e.$eval(r);e.__dragItem=i;if(angular.isArray(o)){if(t&&t.index>=0){o[t.index]=i}else{o.push(i)}if(n&&n.placeholder===true){o[o.length-1]["jqyoui_pos"]=s}}else{$parse(r+" = __dragItem")(e);if(n&&n.placeholder===true){o["jqyoui_pos"]=s}}};this.mutateDraggable=function(e,t,n,r,i,s,o){var u=angular.equals(angular.copy(s),{}),a=e.$eval(r);e.__dropItem=s;if(n&&n.placeholder){if(n.placeholder!="keep"){if(angular.isArray(a)&&n.index!==undefined){a[n.index]=s}else{$parse(r+" = __dropItem")(e)}}}else{if(angular.isArray(a)){if(u){if(n&&n.placeholder!==true&&n.placeholder!=="keep"){a.splice(n.index,1)}}else{a[n.index]=s}}else{$parse(r+" = __dropItem")(e);if(e.$parent){$parse(r+" = __dropItem")(e.$parent)}}}o.css({"z-index":"",left:"",top:""})};this.fixIndex=function(e,t,n){if(t.applyFilter&&angular.isArray(n)&&n.length>0){var r=e[t.applyFilter](),i=r[t.index],s=undefined;n.forEach(function(e,t){if(angular.equals(e,i)){s=t}});return s}return t.index}}]).directive("jqyouiDraggable",["ngDragDropService",function(e){return{require:"?jqyouiDroppable",restrict:"A",link:function(t,n,r){var i,s;var o=function(o,u){if(o){i=t.$eval(n.attr("jqyoui-draggable"))||[];n.draggable({disabled:false}).draggable(t.$eval(r.jqyouiOptions)||{}).draggable({start:function(n,r){s=angular.element(this).css("z-index");angular.element(this).css("z-index",99999);jqyoui.startXY=angular.element(this).offset();e.callEventCallback(t,i.onStart,n,r)},stop:function(n,r){angular.element(this).css("z-index",s);e.callEventCallback(t,i.onStop,n,r)},drag:function(n,r){e.callEventCallback(t,i.onDrag,n,r)}})}else{n.draggable({disabled:true})}};t.$watch(function(){return t.$eval(r.drag)},o);o()}}}]).directive("jqyouiDroppable",["ngDragDropService",function(e){return{restrict:"A",priority:1,link:function(t,n,r){var i=function(i,s){if(i){n.droppable({disabled:false}).droppable(t.$eval(r.jqyouiOptions)||{}).droppable({over:function(n,r){var i=t.$eval(angular.element(this).attr("jqyoui-droppable"))||[];e.callEventCallback(t,i.onOver,n,r)},out:function(n,r){var i=t.$eval(angular.element(this).attr("jqyoui-droppable"))||[];e.callEventCallback(t,i.onOut,n,r)},drop:function(t,n){e.invokeDrop(angular.element(n.draggable),angular.element(this),t,n)}})}else{n.droppable({disabled:true})}};t.$watch(function(){return t.$eval(r.drop)},i);i()}}}])
10 |
--------------------------------------------------------------------------------
/.mvn/wrapper/MavenWrapperDownloader.java:
--------------------------------------------------------------------------------
1 | /*
2 | Licensed to the Apache Software Foundation (ASF) under one
3 | or more contributor license agreements. See the NOTICE file
4 | distributed with this work for additional information
5 | regarding copyright ownership. The ASF licenses this file
6 | to you under the Apache License, Version 2.0 (the
7 | "License"); you may not use this file except in compliance
8 | with the License. You may obtain a copy of the License at
9 |
10 | http://www.apache.org/licenses/LICENSE-2.0
11 |
12 | Unless required by applicable law or agreed to in writing,
13 | software distributed under the License is distributed on an
14 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 | KIND, either express or implied. See the License for the
16 | specific language governing permissions and limitations
17 | under the License.
18 | */
19 |
20 | import java.io.File;
21 | import java.io.FileInputStream;
22 | import java.io.FileOutputStream;
23 | import java.io.IOException;
24 | import java.net.URL;
25 | import java.nio.channels.Channels;
26 | import java.nio.channels.ReadableByteChannel;
27 | import java.util.Properties;
28 |
29 | public class MavenWrapperDownloader {
30 |
31 | /**
32 | * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
33 | */
34 | private static final String DEFAULT_DOWNLOAD_URL =
35 | "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
36 |
37 | /**
38 | * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
39 | * use instead of the default one.
40 | */
41 | private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
42 | ".mvn/wrapper/maven-wrapper.properties";
43 |
44 | /**
45 | * Path where the maven-wrapper.jar will be saved to.
46 | */
47 | private static final String MAVEN_WRAPPER_JAR_PATH =
48 | ".mvn/wrapper/maven-wrapper.jar";
49 |
50 | /**
51 | * Name of the property which should be used to override the default download url for the wrapper.
52 | */
53 | private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
54 |
55 | public static void main(String args[]) {
56 | System.out.println("- Downloader started");
57 | File baseDirectory = new File(args[0]);
58 | System.out.println("- Using model directory: " + baseDirectory.getAbsolutePath());
59 |
60 | // If the maven-wrapper.properties exists, read it and check if it contains a custom
61 | // wrapperUrl parameter.
62 | File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
63 | String url = DEFAULT_DOWNLOAD_URL;
64 | if (mavenWrapperPropertyFile.exists()) {
65 | FileInputStream mavenWrapperPropertyFileInputStream = null;
66 | try {
67 | mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
68 | Properties mavenWrapperProperties = new Properties();
69 | mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
70 | url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
71 | } catch (IOException e) {
72 | System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
73 | } finally {
74 | try {
75 | if (mavenWrapperPropertyFileInputStream != null) {
76 | mavenWrapperPropertyFileInputStream.close();
77 | }
78 | } catch (IOException e) {
79 | // Ignore ...
80 | }
81 | }
82 | }
83 | System.out.println("- Downloading from: : " + url);
84 |
85 | File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
86 | if (!outputFile.getParentFile().exists()) {
87 | if (!outputFile.getParentFile().mkdirs()) {
88 | System.out.println(
89 | "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
90 | }
91 | }
92 | System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
93 | try {
94 | downloadFileFromURL(url, outputFile);
95 | System.out.println("Done");
96 | System.exit(0);
97 | } catch (Throwable e) {
98 | System.out.println("- Error downloading");
99 | e.printStackTrace();
100 | System.exit(1);
101 | }
102 | }
103 |
104 | private static void downloadFileFromURL(String urlString, File destination) throws Exception {
105 | URL website = new URL(urlString);
106 | ReadableByteChannel rbc;
107 | rbc = Channels.newChannel(website.openStream());
108 | FileOutputStream fos = new FileOutputStream(destination);
109 | fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
110 | fos.close();
111 | rbc.close();
112 | }
113 |
114 | }
115 |
--------------------------------------------------------------------------------