jruby_activiti 1.2.5 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -1
- data/.ruby-version +1 -1
- data/CHANGELOG +6 -0
- data/Jarfile +5 -0
- data/Jarfile.lock +52 -13
- data/README.md +21 -9
- data/java/build.md +3 -0
- data/java/mapping.md +20 -0
- data/java/pom.xml +30 -0
- data/java/src/main/java/jrubyactiviti/Modeler.java +95 -0
- data/java/src/main/java/jrubyactiviti/ProcessDiagram.java +491 -0
- data/java/src/main/java/jrubyactiviti/ProcessInstanceHighlights.java +237 -0
- data/java/src/main/java/jrubyactiviti/StencilsetResource.java +16 -0
- data/java/src/main/resources/stencilset.json +1339 -0
- data/jruby_activiti.gemspec +3 -2
- data/lib/generators/jruby_activiti/install_generator.rb +4 -0
- data/lib/jar/jrubyactiviti-2.0.jar +0 -0
- data/lib/jruby_activiti/version.rb +1 -1
- data/lib/jruby_activiti/web.rb +81 -0
- data/lib/jruby_activiti.rb +28 -20
- data/test/{base_test.rb → activiti_test.rb} +1 -3
- data/test/instance_hights_test.rb +18 -0
- data/test/modeler_test.rb +35 -0
- data/test/process_diagram_test.rb +33 -0
- data/test/resources/model_init_editor_source.json +1 -0
- data/test/resources/model_json_xml.json +278 -0
- data/test/resources/model_svg_xml.xml +66 -0
- data/test/stencilset_test.rb +7 -0
- data/test/test_helper.rb +2 -0
- data/web/public/diagram-viewer/images/bg.png +0 -0
- data/web/public/diagram-viewer/images/breadcrumbs.png +0 -0
- data/web/public/diagram-viewer/images/checker-bg.png +0 -0
- data/web/public/diagram-viewer/images/deployer/blue/message_catch.png +0 -0
- data/web/public/diagram-viewer/images/deployer/business_rule.png +0 -0
- data/web/public/diagram-viewer/images/deployer/error_catch.png +0 -0
- data/web/public/diagram-viewer/images/deployer/error_throw.png +0 -0
- data/web/public/diagram-viewer/images/deployer/manual.png +0 -0
- data/web/public/diagram-viewer/images/deployer/message_catch.png +0 -0
- data/web/public/diagram-viewer/images/deployer/message_throw.png +0 -0
- data/web/public/diagram-viewer/images/deployer/receive.png +0 -0
- data/web/public/diagram-viewer/images/deployer/script.png +0 -0
- data/web/public/diagram-viewer/images/deployer/send.png +0 -0
- data/web/public/diagram-viewer/images/deployer/service.png +0 -0
- data/web/public/diagram-viewer/images/deployer/signal_catch.png +0 -0
- data/web/public/diagram-viewer/images/deployer/signal_throw.png +0 -0
- data/web/public/diagram-viewer/images/deployer/timer.png +0 -0
- data/web/public/diagram-viewer/images/deployer/user.png +0 -0
- data/web/public/diagram-viewer/index.html +130 -0
- data/web/public/diagram-viewer/js/ActivitiRest.js +74 -0
- data/web/public/diagram-viewer/js/ActivityImpl.js +1 -0
- data/web/public/diagram-viewer/js/Color.js +603 -0
- data/web/public/diagram-viewer/js/LineBreakMeasurer.js +270 -0
- data/web/public/diagram-viewer/js/Polyline.js +387 -0
- data/web/public/diagram-viewer/js/ProcessDiagramCanvas.js +2172 -0
- data/web/public/diagram-viewer/js/ProcessDiagramGenerator.js +1087 -0
- data/web/public/diagram-viewer/js/jquery/jquery.asyncqueue.js +125 -0
- data/web/public/diagram-viewer/js/jquery/jquery.js +9266 -0
- data/web/public/diagram-viewer/js/jquery/jquery.progressbar.js +131 -0
- data/web/public/diagram-viewer/js/jstools.js +23 -0
- data/web/public/diagram-viewer/js/raphael.2.1.1.js +10 -0
- data/web/public/diagram-viewer/js/raphael.js +10 -0
- data/web/public/diagram-viewer/js/raphael_uncompressed.js +5815 -0
- data/web/public/diagram-viewer/js/textlayout.js +441 -0
- data/web/public/diagram-viewer/style.css +1 -0
- data/web/public/editor-app/app-cfg.js +25 -0
- data/web/public/editor-app/app.js +432 -0
- data/web/public/editor-app/configuration/properties/assignment-display-template.html +4 -0
- data/web/public/editor-app/configuration/properties/assignment-popup.html +44 -0
- data/web/public/editor-app/configuration/properties/assignment-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/boolean-property-template.html +4 -0
- data/web/public/editor-app/configuration/properties/condition-expression-display-template.html +2 -0
- data/web/public/editor-app/configuration/properties/condition-expression-popup.html +29 -0
- data/web/public/editor-app/configuration/properties/condition-expression-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/default-value-display-template.html +4 -0
- data/web/public/editor-app/configuration/properties/event-listeners-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/event-listeners-popup.html +115 -0
- data/web/public/editor-app/configuration/properties/event-listeners-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/execution-listeners-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/execution-listeners-popup.html +101 -0
- data/web/public/editor-app/configuration/properties/execution-listeners-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/feedback-popup.html +17 -0
- data/web/public/editor-app/configuration/properties/fields-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/fields-popup.html +61 -0
- data/web/public/editor-app/configuration/properties/fields-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/form-properties-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/form-properties-popup.html +93 -0
- data/web/public/editor-app/configuration/properties/form-properties-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/in-parameters-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/in-parameters-popup.html +53 -0
- data/web/public/editor-app/configuration/properties/in-parameters-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/message-definitions-display-template.html +2 -0
- data/web/public/editor-app/configuration/properties/message-definitions-popup.html +50 -0
- data/web/public/editor-app/configuration/properties/message-definitions-write-template.html +3 -0
- data/web/public/editor-app/configuration/properties/message-property-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/multiinstance-property-write-template.html +8 -0
- data/web/public/editor-app/configuration/properties/out-parameters-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/out-parameters-popup.html +53 -0
- data/web/public/editor-app/configuration/properties/out-parameters-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/sequenceflow-order-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/sequenceflow-order-popup.html +47 -0
- data/web/public/editor-app/configuration/properties/sequenceflow-order-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/signal-definitions-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/signal-definitions-popup.html +58 -0
- data/web/public/editor-app/configuration/properties/signal-definitions-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/signal-property-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/string-property-write-mode-template.html +8 -0
- data/web/public/editor-app/configuration/properties/subprocess-reference-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/subprocess-reference-popup.html +43 -0
- data/web/public/editor-app/configuration/properties/subprocess-reference-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/task-listeners-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/task-listeners-popup.html +102 -0
- data/web/public/editor-app/configuration/properties/task-listeners-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/text-popup.html +17 -0
- data/web/public/editor-app/configuration/properties/text-property-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties-assignment-controller.js +150 -0
- data/web/public/editor-app/configuration/properties-condition-expression-controller.js +58 -0
- data/web/public/editor-app/configuration/properties-custom-controllers.js +18 -0
- data/web/public/editor-app/configuration/properties-default-controllers.js +115 -0
- data/web/public/editor-app/configuration/properties-event-listeners-controller.js +266 -0
- data/web/public/editor-app/configuration/properties-execution-listeners-controller.js +326 -0
- data/web/public/editor-app/configuration/properties-fields-controller.js +192 -0
- data/web/public/editor-app/configuration/properties-form-properties-controller.js +192 -0
- data/web/public/editor-app/configuration/properties-in-parameters-controller.js +158 -0
- data/web/public/editor-app/configuration/properties-message-definitions-controller.js +137 -0
- data/web/public/editor-app/configuration/properties-message-scope-controller.js +48 -0
- data/web/public/editor-app/configuration/properties-multiinstance-controller.js +34 -0
- data/web/public/editor-app/configuration/properties-out-parameters-controller.js +158 -0
- data/web/public/editor-app/configuration/properties-sequenceflow-order-controller.js +130 -0
- data/web/public/editor-app/configuration/properties-signal-definitions-controller.js +136 -0
- data/web/public/editor-app/configuration/properties-signal-scope-controller.js +47 -0
- data/web/public/editor-app/configuration/properties-task-listeners-controller.js +325 -0
- data/web/public/editor-app/configuration/properties.js +99 -0
- data/web/public/editor-app/configuration/toolbar-custom-actions.js +18 -0
- data/web/public/editor-app/configuration/toolbar-default-actions.js +429 -0
- data/web/public/editor-app/configuration/toolbar.js +175 -0
- data/web/public/editor-app/configuration/url-config.js +34 -0
- data/web/public/editor-app/css/style-common.css +1518 -0
- data/web/public/editor-app/css/style-editor.css +639 -0
- data/web/public/editor-app/css/style.css +471 -0
- data/web/public/editor-app/editor/css/editor.css +202 -0
- data/web/public/editor-app/editor/i18n/translation_de.js +383 -0
- data/web/public/editor-app/editor/i18n/translation_en_us.js +423 -0
- data/web/public/editor-app/editor/i18n/translation_signavio_de.js +106 -0
- data/web/public/editor-app/editor/i18n/translation_signavio_en_us.js +108 -0
- data/web/public/editor-app/editor/oryx.debug.js +24510 -0
- data/web/public/editor-app/editor/oryx.js +30 -0
- data/web/public/editor-app/editor-config.js +32 -0
- data/web/public/editor-app/editor-controller.js +65 -0
- data/web/public/editor-app/editor-utils.js +135 -0
- data/web/public/editor-app/editor.html +136 -0
- data/web/public/editor-app/eventbus.js +133 -0
- data/web/public/editor-app/fonts/activiti-admin-webfont.eot +0 -0
- data/web/public/editor-app/fonts/activiti-admin-webfont.svg +43 -0
- data/web/public/editor-app/fonts/activiti-admin-webfont.ttf +0 -0
- data/web/public/editor-app/fonts/activiti-admin-webfont.woff +0 -0
- data/web/public/editor-app/fonts/glyphicons-halflings-regular.eot +0 -0
- data/web/public/editor-app/fonts/glyphicons-halflings-regular.svg +229 -0
- data/web/public/editor-app/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/web/public/editor-app/fonts/glyphicons-halflings-regular.woff +0 -0
- data/web/public/editor-app/header-controller.js +31 -0
- data/web/public/editor-app/i18n/en.json +286 -0
- data/web/public/editor-app/images/bpmn-error.png +0 -0
- data/web/public/editor-app/images/bpmn-warning.png +0 -0
- data/web/public/editor-app/images/datadefinition.png +0 -0
- data/web/public/editor-app/images/delete.png +0 -0
- data/web/public/editor-app/images/loading.gif +0 -0
- data/web/public/editor-app/images/logo-2x.png +0 -0
- data/web/public/editor-app/images/logo.png +0 -0
- data/web/public/editor-app/images/nw-handle-dark.gif +0 -0
- data/web/public/editor-app/images/se-handle-dark.gif +0 -0
- data/web/public/editor-app/images/shapemenu_highlight.png +0 -0
- data/web/public/editor-app/images/wrench.png +0 -0
- data/web/public/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js +8 -0
- data/web/public/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js.map +8 -0
- data/web/public/editor-app/libs/angular-dragdrop.min-1.0.3.js +9 -0
- data/web/public/editor-app/libs/angular-dragdrop_1.0.7/angular-dragdrop.min.js +29 -0
- data/web/public/editor-app/libs/angular-mocks_1.2.13/angular-mocks.js +2136 -0
- data/web/public/editor-app/libs/angular-resource_1.2.13/angular-resource.js +596 -0
- data/web/public/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js +13 -0
- data/web/public/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js.map +8 -0
- data/web/public/editor-app/libs/angular-route_1.2.13/angular-route.js +921 -0
- data/web/public/editor-app/libs/angular-route_1.2.13/angular-route.min.js +14 -0
- data/web/public/editor-app/libs/angular-route_1.2.13/angular-route.min.js.map +8 -0
- data/web/public/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.js +625 -0
- data/web/public/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js +14 -0
- data/web/public/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js.map +8 -0
- data/web/public/editor-app/libs/angular-scroll_0.5.7/angular-scroll.min.js +1 -0
- data/web/public/editor-app/libs/angular-strap_2.0.5/angular-strap.min.js +9 -0
- data/web/public/editor-app/libs/angular-strap_2.0.5/angular-strap.tpl.min.js +8 -0
- data/web/public/editor-app/libs/angular-translate-loader-static-files/.bower.json +19 -0
- data/web/public/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js +31 -0
- data/web/public/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js +6 -0
- data/web/public/editor-app/libs/angular-translate-storage-cookie/.bower.json +20 -0
- data/web/public/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js +19 -0
- data/web/public/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js +6 -0
- data/web/public/editor-app/libs/angular-translate_2.4.2/angular-translate.js +960 -0
- data/web/public/editor-app/libs/angular-translate_2.4.2/angular-translate.min.js +6 -0
- data/web/public/editor-app/libs/angular_1.2.13/angular-animate.min.js +27 -0
- data/web/public/editor-app/libs/angular_1.2.13/angular.min.js +204 -0
- data/web/public/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker-bs3.css +267 -0
- data/web/public/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker.js +1026 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css +347 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css.map +1 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.min.css +7 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css +5785 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css.map +1 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap.min.css +7 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.eot +0 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.svg +229 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.woff +0 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/js/bootstrap.js +1951 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/js/bootstrap.min.js +6 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/.bower.json +14 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/.gitignore +2 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/CHANGES +93 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/CONTRIBUTORS.md +25 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/LICENSE +19 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/README.md +161 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-sham.js +444 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-sham.map +1 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-sham.min.js +4 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-shim.js +1314 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-shim.map +1 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-shim.min.js +4 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/package.json +34 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-kill.js +64 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-matchers.js +34 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h.js +3 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/index.html +64 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/index.min.html +63 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine-html.js +190 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.css +166 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.js +2477 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine_favicon.png +0 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/json2.js +478 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-array.js +1223 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-date.js +152 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-function.js +147 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-number.js +14 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-object.js +181 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-string.js +204 -0
- data/web/public/editor-app/libs/jquery-ui-1.10.3.custom.min.js +6 -0
- data/web/public/editor-app/libs/jquery.autogrow-textarea.js +61 -0
- data/web/public/editor-app/libs/jquery_1.11.0/jquery.js +9789 -0
- data/web/public/editor-app/libs/jquery_1.11.0/jquery.min.js +4 -0
- data/web/public/editor-app/libs/jquery_1.11.0/jquery.min.map +1 -0
- data/web/public/editor-app/libs/json3_3.2.6/LICENSE +20 -0
- data/web/public/editor-app/libs/json3_3.2.6/lib/json3.js +861 -0
- data/web/public/editor-app/libs/json3_3.2.6/lib/json3.min.js +18 -0
- data/web/public/editor-app/libs/momentjs_2.5.1/momentjs.min.js +6 -0
- data/web/public/editor-app/libs/mousetrap-1.4.5.min.js +9 -0
- data/web/public/editor-app/libs/ng-grid-2.0.7-min.js +2 -0
- data/web/public/editor-app/libs/ng-grid-2.0.7.min.css +1 -0
- data/web/public/editor-app/libs/path_parser.js +30 -0
- data/web/public/editor-app/libs/prototype-1.5.1.js +3272 -0
- data/web/public/editor-app/libs/ui-utils.min-0.0.4.js +7 -0
- data/web/public/editor-app/partials/root-stencil-item-template.html +11 -0
- data/web/public/editor-app/partials/stencil-item-template.html +27 -0
- data/web/public/editor-app/plugins.xml +58 -0
- data/web/public/editor-app/popups/icon-template.html +3 -0
- data/web/public/editor-app/popups/save-model.html +41 -0
- data/web/public/editor-app/popups/select-shape.html +20 -0
- data/web/public/editor-app/popups/unsaved-changes.html +22 -0
- data/web/public/editor-app/select-shape-controller.js +314 -0
- data/web/public/editor-app/stencil-controller.js +1421 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.collapsed.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/expanded.subprocess.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.business.rule.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.camel.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.manual.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.mule.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.receive.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.script.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.send.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.service.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.shell.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.user.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/subprocess.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/task.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/artifact/text.annotation.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/cancel.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/compensation.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/error.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/message.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/signal.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/timer.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/connector/association.undirected.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/connector/association.unidirectional.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/connector/messageflow.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/connector/sequenceflow.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/dataobject/data.store.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/diagram.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/endevent/cancel.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/endevent/error.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/endevent/none.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/endevent/terminate.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/gateway/eventbased.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/gateway/exclusive.databased.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/gateway/inclusive.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/gateway/parallel.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/error.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/message.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/none.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/signal.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/timer.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/swimlane/lane.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/swimlane/pool.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/throwing/none.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/throwing/signal.png +0 -0
- data/web/public/editor-app/toolbar-controller.js +162 -0
- data/web/public/modeler.html +140 -0
- data/web/views/models/index.erb +32 -0
- data/web/views/models/new.erb +15 -0
- metadata +334 -10
@@ -0,0 +1,7 @@
|
|
1
|
+
/**
|
2
|
+
* angular-ui-utils - Swiss-Army-Knife of AngularJS tools (with no external dependencies!)
|
3
|
+
* @version v0.0.4 - 2013-08-28
|
4
|
+
* @link http://angular-ui.github.com
|
5
|
+
* @license MIT License, http://www.opensource.org/licenses/MIT
|
6
|
+
*/
|
7
|
+
angular.module("ui.event",[]).directive("uiEvent",["$parse",function(a){return function(b,c,d){var e=b.$eval(d.uiEvent);angular.forEach(e,function(d,e){var f=a(d);c.bind(e,function(a){var c=Array.prototype.slice.call(arguments);c=c.splice(1),f(b,{$event:a,$params:c}),b.$$phase||b.$apply()})})}}]),angular.module("ui.format",[]).filter("format",function(){return function(a,b){var c=a;if(angular.isString(c)&&void 0!==b)if(angular.isArray(b)||angular.isObject(b)||(b=[b]),angular.isArray(b)){var d=b.length,e=function(a,c){return c=parseInt(c,10),c>=0&&d>c?b[c]:a};c=c.replace(/\$([0-9]+)/g,e)}else angular.forEach(b,function(a,b){c=c.split(":"+b).join(a)});return c}}),angular.module("ui.highlight",[]).filter("highlight",function(){return function(a,b,c){return b||angular.isNumber(b)?(a=a.toString(),b=b.toString(),c?a.split(b).join('<span class="ui-match">'+b+"</span>"):a.replace(new RegExp(b,"gi"),'<span class="ui-match">$&</span>')):a}}),angular.module("ui.include",[]).directive("uiInclude",["$http","$templateCache","$anchorScroll","$compile",function(a,b,c,d){return{restrict:"ECA",terminal:!0,compile:function(e,f){var g=f.uiInclude||f.src,h=f.fragment||"",i=f.onload||"",j=f.autoscroll;return function(e,f){function k(){var k=++m,o=e.$eval(g),p=e.$eval(h);o?a.get(o,{cache:b}).success(function(a){if(k===m){l&&l.$destroy(),l=e.$new();var b;b=p?angular.element("<div/>").html(a).find(p):angular.element("<div/>").html(a).contents(),f.html(b),d(b)(l),!angular.isDefined(j)||j&&!e.$eval(j)||c(),l.$emit("$includeContentLoaded"),e.$eval(i)}}).error(function(){k===m&&n()}):n()}var l,m=0,n=function(){l&&(l.$destroy(),l=null),f.html("")};e.$watch(h,k),e.$watch(g,k)}}}}]),angular.module("ui.indeterminate",[]).directive("uiIndeterminate",[function(){return{compile:function(a,b){return b.type&&"checkbox"===b.type.toLowerCase()?function(a,b,c){a.$watch(c.uiIndeterminate,function(a){b[0].indeterminate=!!a})}:angular.noop}}}]),angular.module("ui.inflector",[]).filter("inflector",function(){function a(a){return a.replace(/^([a-z])|\s+([a-z])/g,function(a){return a.toUpperCase()})}function b(a,b){return a.replace(/[A-Z]/g,function(a){return b+a})}var c={humanize:function(c){return a(b(c," ").split("_").join(" "))},underscore:function(a){return a.substr(0,1).toLowerCase()+b(a.substr(1),"_").toLowerCase().split(" ").join("_")},variable:function(b){return b=b.substr(0,1).toLowerCase()+a(b.split("_").join(" ")).substr(1).split(" ").join("")}};return function(a,b){return b!==!1&&angular.isString(a)?(b=b||"humanize",c[b](a)):a}}),angular.module("ui.jq",[]).value("uiJqConfig",{}).directive("uiJq",["uiJqConfig","$timeout",function(a,b){return{restrict:"A",compile:function(c,d){if(!angular.isFunction(c[d.uiJq]))throw new Error('ui-jq: The "'+d.uiJq+'" function does not exist');var e=a&&a[d.uiJq];return function(a,c,d){function f(){b(function(){c[d.uiJq].apply(c,g)},0,!1)}var g=[];d.uiOptions?(g=a.$eval("["+d.uiOptions+"]"),angular.isObject(e)&&angular.isObject(g[0])&&(g[0]=angular.extend({},e,g[0]))):e&&(g=[e]),d.ngModel&&c.is("select,input,textarea")&&c.bind("change",function(){c.trigger("input")}),d.uiRefresh&&a.$watch(d.uiRefresh,function(){f()}),f()}}}}]),angular.module("ui.keypress",[]).factory("keypressHelper",["$parse",function(a){var b={8:"backspace",9:"tab",13:"enter",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"delete"},c=function(a){return a.charAt(0).toUpperCase()+a.slice(1)};return function(d,e,f,g){var h,i=[];h=e.$eval(g["ui"+c(d)]),angular.forEach(h,function(b,c){var d,e;e=a(b),angular.forEach(c.split(" "),function(a){d={expression:e,keys:{}},angular.forEach(a.split("-"),function(a){d.keys[a]=!0}),i.push(d)})}),f.bind(d,function(a){var c=!(!a.metaKey||a.ctrlKey),f=!!a.altKey,g=!!a.ctrlKey,h=!!a.shiftKey,j=a.keyCode;"keypress"===d&&!h&&j>=97&&122>=j&&(j-=32),angular.forEach(i,function(d){var i=d.keys[b[j]]||d.keys[j.toString()],k=!!d.keys.meta,l=!!d.keys.alt,m=!!d.keys.ctrl,n=!!d.keys.shift;i&&k===c&&l===f&&m===g&&n===h&&e.$apply(function(){d.expression(e,{$event:a})})})})}}]),angular.module("ui.keypress").directive("uiKeydown",["keypressHelper",function(a){return{link:function(b,c,d){a("keydown",b,c,d)}}}]),angular.module("ui.keypress").directive("uiKeypress",["keypressHelper",function(a){return{link:function(b,c,d){a("keypress",b,c,d)}}}]),angular.module("ui.keypress").directive("uiKeyup",["keypressHelper",function(a){return{link:function(b,c,d){a("keyup",b,c,d)}}}]),angular.module("ui.mask",[]).value("uiMaskConfig",{maskDefinitions:{9:/\d/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}}).directive("uiMask",["uiMaskConfig",function(a){return{priority:100,require:"ngModel",restrict:"A",compile:function(){var b=a;return function(a,c,d,e){function f(a){return angular.isDefined(a)?(s(a),N?(k(),l(),!0):j()):j()}function g(a){angular.isDefined(a)&&(D=a,N&&w())}function h(a){return N?(G=o(a||""),I=n(G),e.$setValidity("mask",I),I&&G.length?p(G):void 0):a}function i(a){return N?(G=o(a||""),I=n(G),e.$viewValue=G.length?p(G):"",e.$setValidity("mask",I),""===G&&void 0!==e.$error.required&&e.$setValidity("required",!1),I?G:void 0):a}function j(){return N=!1,m(),angular.isDefined(P)?c.attr("placeholder",P):c.removeAttr("placeholder"),angular.isDefined(Q)?c.attr("maxlength",Q):c.removeAttr("maxlength"),c.val(e.$modelValue),e.$viewValue=e.$modelValue,!1}function k(){G=K=o(e.$modelValue||""),H=J=p(G),I=n(G);var a=I&&G.length?H:"";d.maxlength&&c.attr("maxlength",2*B[B.length-1]),c.attr("placeholder",D),c.val(a),e.$viewValue=a}function l(){O||(c.bind("blur",t),c.bind("mousedown mouseup",u),c.bind("input keyup click focus",w),O=!0)}function m(){O&&(c.unbind("blur",t),c.unbind("mousedown",u),c.unbind("mouseup",u),c.unbind("input",w),c.unbind("keyup",w),c.unbind("click",w),c.unbind("focus",w),O=!1)}function n(a){return a.length?a.length>=F:!0}function o(a){var b="",c=C.slice();return a=a.toString(),angular.forEach(E,function(b){a=a.replace(b,"")}),angular.forEach(a.split(""),function(a){c.length&&c[0].test(a)&&(b+=a,c.shift())}),b}function p(a){var b="",c=B.slice();return angular.forEach(D.split(""),function(d,e){a.length&&e===c[0]?(b+=a.charAt(0)||"_",a=a.substr(1),c.shift()):b+=d}),b}function q(a){var b=d.placeholder;return"undefined"!=typeof b&&b[a]?b[a]:"_"}function r(){return D.replace(/[_]+/g,"_").replace(/([^_]+)([a-zA-Z0-9])([^_])/g,"$1$2_$3").split("_")}function s(a){var b=0;if(B=[],C=[],D="","string"==typeof a){F=0;var c=!1,d=a.split("");angular.forEach(d,function(a,d){R.maskDefinitions[a]?(B.push(b),D+=q(d),C.push(R.maskDefinitions[a]),b++,c||F++):"?"===a?c=!0:(D+=a,b++)})}B.push(B.slice().pop()+1),E=r(),N=B.length>1?!0:!1}function t(){L=0,M=0,I&&0!==G.length||(H="",c.val(""),a.$apply(function(){e.$setViewValue("")}))}function u(a){"mousedown"===a.type?c.bind("mouseout",v):c.unbind("mouseout",v)}function v(){M=A(this),c.unbind("mouseout",v)}function w(b){b=b||{};var d=b.which,f=b.type;if(16!==d&&91!==d){var g,h=c.val(),i=J,j=o(h),k=K,l=!1,m=y(this)||0,n=L||0,q=m-n,r=B[0],s=B[j.length]||B.slice().shift(),t=M||0,u=A(this)>0,v=t>0,w=h.length>i.length||t&&h.length>i.length-t,C=h.length<i.length||t&&h.length===i.length-t,D=d>=37&&40>=d&&b.shiftKey,E=37===d,F=8===d||"keyup"!==f&&C&&-1===q,G=46===d||"keyup"!==f&&C&&0===q&&!v,H=(E||F||"click"===f)&&m>r;if(M=A(this),!D&&(!u||"click"!==f&&"keyup"!==f)){if("input"===f&&C&&!v&&j===k){for(;F&&m>r&&!x(m);)m--;for(;G&&s>m&&-1===B.indexOf(m);)m++;var I=B.indexOf(m);j=j.substring(0,I)+j.substring(I+1),l=!0}for(g=p(j),J=g,K=j,c.val(g),l&&a.$apply(function(){e.$setViewValue(j)}),w&&r>=m&&(m=r+1),H&&m--,m=m>s?s:r>m?r:m;!x(m)&&m>r&&s>m;)m+=H?-1:1;(H&&s>m||w&&!x(n))&&m++,L=m,z(this,m)}}}function x(a){return B.indexOf(a)>-1}function y(a){if(void 0!==a.selectionStart)return a.selectionStart;if(document.selection){a.focus();var b=document.selection.createRange();return b.moveStart("character",-a.value.length),b.text.length}return 0}function z(a,b){if(0!==a.offsetWidth&&0!==a.offsetHeight)if(a.setSelectionRange)a.focus(),a.setSelectionRange(b,b);else if(a.createTextRange){var c=a.createTextRange();c.collapse(!0),c.moveEnd("character",b),c.moveStart("character",b),c.select()}}function A(a){return void 0!==a.selectionStart?a.selectionEnd-a.selectionStart:document.selection?document.selection.createRange().text.length:0}var B,C,D,E,F,G,H,I,J,K,L,M,N=!1,O=!1,P=d.placeholder,Q=d.maxlength,R={};d.uiOptions?(R=a.$eval("["+d.uiOptions+"]"),angular.isObject(R[0])&&(R=function(a,b){for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]?angular.extend(b[c],a[c]):b[c]=angular.copy(a[c]));return b}(b,R[0]))):R=b,d.$observe("uiMask",f),d.$observe("placeholder",g),e.$formatters.push(h),e.$parsers.push(i),c.bind("mousedown mouseup",u),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){"use strict";if(null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&1/0!==d&&d!==-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1})}}}}]),angular.module("ui.reset",[]).value("uiResetConfig",null).directive("uiReset",["uiResetConfig",function(a){var b=null;return void 0!==a&&(b=a),{require:"ngModel",link:function(a,c,d,e){var f;f=angular.element('<a class="ui-reset" />'),c.wrap('<span class="ui-resetwrap" />').after(f),f.bind("click",function(c){c.preventDefault(),a.$apply(function(){d.uiReset?e.$setViewValue(a.$eval(d.uiReset)):e.$setViewValue(b),e.$render()})})}}}]),angular.module("ui.route",[]).directive("uiRoute",["$location","$parse",function(a,b){return{restrict:"AC",scope:!0,compile:function(c,d){var e;if(d.uiRoute)e="uiRoute";else if(d.ngHref)e="ngHref";else{if(!d.href)throw new Error("uiRoute missing a route or href property on "+c[0]);e="href"}return function(c,d,f){function g(b){(hash=b.indexOf("#"))>-1&&(b=b.substr(hash+1)),j=function(){i(c,a.path().indexOf(b)>-1)},j()}function h(b){(hash=b.indexOf("#"))>-1&&(b=b.substr(hash+1)),j=function(){var d=new RegExp("^"+b+"$",["i"]);i(c,d.test(a.path()))},j()}var i=b(f.ngModel||f.routeModel||"$uiRoute").assign,j=angular.noop;switch(e){case"uiRoute":f.uiRoute?h(f.uiRoute):f.$observe("uiRoute",h);break;case"ngHref":f.ngHref?g(f.ngHref):f.$observe("ngHref",g);break;case"href":g(f.href)}c.$on("$routeChangeSuccess",function(){j()}),c.$on("$stateChangeSuccess",function(){j()})}}}}]),angular.module("ui.scrollfix",[]).directive("uiScrollfix",["$window",function(a){"use strict";return{require:"^?uiScrollfixTarget",link:function(b,c,d,e){var f=c[0].offsetTop,g=e&&e.$element||angular.element(a);d.uiScrollfix?"string"==typeof d.uiScrollfix&&("-"===d.uiScrollfix.charAt(0)?d.uiScrollfix=f-parseFloat(d.uiScrollfix.substr(1)):"+"===d.uiScrollfix.charAt(0)&&(d.uiScrollfix=f+parseFloat(d.uiScrollfix.substr(1)))):d.uiScrollfix=f,g.bind("scroll",function(){var b;if(angular.isDefined(a.pageYOffset))b=a.pageYOffset;else{var e=document.compatMode&&"BackCompat"!==document.compatMode?document.documentElement:document.body;b=e.scrollTop}!c.hasClass("ui-scrollfix")&&b>d.uiScrollfix?c.addClass("ui-scrollfix"):c.hasClass("ui-scrollfix")&&b<d.uiScrollfix&&c.removeClass("ui-scrollfix")})}}}]).directive("uiScrollfixTarget",[function(){"use strict";return{controller:function(a){this.$element=a}}}]),angular.module("ui.showhide",[]).directive("uiShow",[function(){return function(a,b,c){a.$watch(c.uiShow,function(a){a?b.addClass("ui-show"):b.removeClass("ui-show")})}}]).directive("uiHide",[function(){return function(a,b,c){a.$watch(c.uiHide,function(a){a?b.addClass("ui-hide"):b.removeClass("ui-hide")})}}]).directive("uiToggle",[function(){return function(a,b,c){a.$watch(c.uiToggle,function(a){a?b.removeClass("ui-hide").addClass("ui-show"):b.removeClass("ui-show").addClass("ui-hide")})}}]),angular.module("ui.unique",[]).filter("unique",["$parse",function(a){return function(b,c){if(c===!1)return b;if((c||angular.isUndefined(c))&&angular.isArray(b)){var d=[],e=angular.isString(c)?a(c):function(a){return a},f=function(a){return angular.isObject(a)?e(a):a};angular.forEach(b,function(a){for(var b=!1,c=0;c<d.length;c++)if(angular.equals(f(d[c]),f(a))){b=!0;break}b||d.push(a)}),b=d}return b}}]),angular.module("ui.validate",[]).directive("uiValidate",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(b){return angular.isString(b)?(a.$watch(b,function(){angular.forEach(g,function(a){a(d.$modelValue)})}),void 0):angular.isArray(b)?(angular.forEach(b,function(b){a.$watch(b,function(){angular.forEach(g,function(a){a(d.$modelValue)})})}),void 0):(angular.isObject(b)&&angular.forEach(b,function(b,c){angular.isString(b)&&a.$watch(b,function(){g[c](d.$modelValue)}),angular.isArray(b)&&angular.forEach(b,function(b){a.$watch(b,function(){g[c](d.$modelValue)})})}),void 0)}var f,g={},h=a.$eval(c.uiValidate);h&&(angular.isString(h)&&(h={validator:h}),angular.forEach(h,function(b,c){f=function(e){var f=a.$eval(b,{$value:e});return angular.isObject(f)&&angular.isFunction(f.then)?(f.then(function(){d.$setValidity(c,!0)},function(){d.$setValidity(c,!1)}),e):f?(d.$setValidity(c,!0),e):(d.$setValidity(c,!1),void 0)},g[c]=f,d.$formatters.push(f),d.$parsers.push(f)}),c.uiValidateWatch&&e(a.$eval(c.uiValidateWatch)))}}}),angular.module("ui.utils",["ui.event","ui.format","ui.highlight","ui.include","ui.indeterminate","ui.inflector","ui.jq","ui.keypress","ui.mask","ui.reset","ui.route","ui.scrollfix","ui.showhide","ui.unique","ui.validate"]);
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<span class="stencil-item root-stencil-item"
|
2
|
+
id="{{group.id}}"
|
3
|
+
title="{{group.description}}"
|
4
|
+
ng-model="draggedElement"
|
5
|
+
data-drag="true"
|
6
|
+
jqyoui-draggable="{onStart:'startDragCallback', onDrag:'dragCallback'}"
|
7
|
+
data-jqyoui-options="{revert: 'invalid', helper: 'clone', opacity : 0.5}">
|
8
|
+
|
9
|
+
<img ng-src="editor-app/stencilsets/bpmn2.0/icons/{{group.icon}}" width="16px;" height="16px;"/>
|
10
|
+
{{group.name}}
|
11
|
+
</span>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<span ng-click="group.expanded = !group.expanded">
|
2
|
+
<i class="glyphicon"
|
3
|
+
ng-class="{'glyphicon-chevron-right': !group.expanded, 'glyphicon-chevron-down': group.expanded}"></i>
|
4
|
+
{{group.name}}
|
5
|
+
</span>
|
6
|
+
|
7
|
+
<!-- Child groups -->
|
8
|
+
<ul ng-repeat="group in group.groups"
|
9
|
+
class="stencil-group stencil-group-non-root"
|
10
|
+
ng-class="{collapsed: !group.expanded, 'first': $first}"
|
11
|
+
ng-include="'editor-app/partials/stencil-item-template.html?version=4'">
|
12
|
+
</ul>
|
13
|
+
|
14
|
+
<!-- Group items -->
|
15
|
+
<ul>
|
16
|
+
<li ng-repeat="item in group.paletteItems" class="stencil-item"
|
17
|
+
id="{{item.id}}"
|
18
|
+
title="{{item.description}}"
|
19
|
+
ng-model="draggedElement"
|
20
|
+
data-drag="true"
|
21
|
+
jqyoui-draggable="{onStart:'startDragCallback', onDrag:'dragCallback'}"
|
22
|
+
data-jqyoui-options="{revert: 'invalid', helper: 'clone', opacity : 0.5}">
|
23
|
+
|
24
|
+
<img ng-src="editor-app/stencilsets/bpmn2.0/icons/{{item.icon}}" width="16px;" height="16px;"/>
|
25
|
+
{{item.name}}
|
26
|
+
</li>
|
27
|
+
</ul>
|
@@ -0,0 +1,58 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<config>
|
3
|
+
|
4
|
+
<plugins>
|
5
|
+
<plugin source="version.js" name="" />
|
6
|
+
<plugin source="signavio.js" name="Signavio.Plugins.Loading" />
|
7
|
+
|
8
|
+
<plugin source="loading.js" name="ORYX.Plugins.Loading" />
|
9
|
+
<plugin source="canvasResize.js" name="ORYX.Plugins.CanvasResize">
|
10
|
+
<notUsesIn namespace="http://b3mn.org/stencilset/xforms#"/>
|
11
|
+
</plugin>
|
12
|
+
|
13
|
+
<plugin source="renameShapes.js" name="ORYX.Plugins.RenameShapes" />
|
14
|
+
<plugin source="processLink.js" name="ORYX.Plugins.ProcessLink">
|
15
|
+
<requires namespace="http://b3mn.org/stencilset/bpmn1.1#"/>
|
16
|
+
</plugin>
|
17
|
+
|
18
|
+
<!-- following plugins don't require Ext -->
|
19
|
+
<plugin source="arrangement.js" name="ORYX.Plugins.Arrangement">
|
20
|
+
<notUsesIn namespace="http://b3mn.org/stencilset/xforms#"/>
|
21
|
+
</plugin>
|
22
|
+
<plugin source="file.js" name="ORYX.Plugins.Save"/>
|
23
|
+
<plugin source="view.js" name="ORYX.Plugins.View" />
|
24
|
+
<plugin source="dragdropresize.js" name="ORYX.Plugins.DragDropResize" />
|
25
|
+
<plugin source="shapeHighlighting.js" name="ORYX.Plugins.HighlightingSelectedShapes" />
|
26
|
+
<plugin source="dragDocker.js" name="ORYX.Plugins.DragDocker">
|
27
|
+
<notUsesIn namespace="http://b3mn.org/stencilset/xforms#" />
|
28
|
+
</plugin>
|
29
|
+
<plugin source="addDocker.js" name="ORYX.Plugins.AddDocker">
|
30
|
+
<notUsesIn namespace="http://b3mn.org/stencilset/xforms#" />
|
31
|
+
</plugin>
|
32
|
+
<plugin source="selectionframe.js" name="ORYX.Plugins.SelectionFrame">
|
33
|
+
<notUsesIn namespace="http://b3mn.org/stencilset/xforms#" />
|
34
|
+
</plugin>
|
35
|
+
<plugin source="shapeHighlighting.js" name="ORYX.Plugins.ShapeHighlighting" />
|
36
|
+
<plugin source="overlay.js" name="ORYX.Plugins.Overlay" />
|
37
|
+
<plugin source="keysMove.js" name="ORYX.Plugins.KeysMove" />
|
38
|
+
<plugin source="Layouter/edgeLayouter.js" name="ORYX.Plugins.Layouter.EdgeLayouter" />
|
39
|
+
|
40
|
+
<!-- Begin: BPMN2.0 specific plugins -->
|
41
|
+
<plugin source="bpmn2.0/bpmn2.0.js" name="ORYX.Plugins.BPMN2_0">
|
42
|
+
<requires namespace="http://b3mn.org/stencilset/bpmn2.0#" />
|
43
|
+
</plugin>
|
44
|
+
|
45
|
+
<!-- End: BPMN2.0 specific plugins -->
|
46
|
+
</plugins>
|
47
|
+
|
48
|
+
<properties>
|
49
|
+
<property group="File" index="1" />
|
50
|
+
<property group="Edit" index="2" />
|
51
|
+
<property group="Undo" index="3" />
|
52
|
+
<property group="Alignment" index="4" />
|
53
|
+
<property group="Group" index="5" />
|
54
|
+
<property group="Z-Order" index="6" />
|
55
|
+
<property group="Docker" index="7" />
|
56
|
+
<property group="Zoom" index="8" />
|
57
|
+
</properties>
|
58
|
+
</config>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
|
2
|
+
<div class="modal" ng-controller="SaveModelCtrl">
|
3
|
+
<div class="modal-dialog">
|
4
|
+
<div class="modal-content">
|
5
|
+
<div class="modal-header">
|
6
|
+
<h2>{{'MODEL.SAVE.TITLE' | translate}}</h2>
|
7
|
+
</div>
|
8
|
+
<div class="modal-body">
|
9
|
+
|
10
|
+
<div class="form-group">
|
11
|
+
<label for="nameField">{{'MODEL.NAME' | translate}}</label>
|
12
|
+
<input type="text"
|
13
|
+
ng-disabled="status.loading"
|
14
|
+
id="nameField"
|
15
|
+
class="form-control"
|
16
|
+
ng-model="saveDialog.name"
|
17
|
+
ui-keypress="{13:'save()'}"
|
18
|
+
auto-focus />
|
19
|
+
</div>
|
20
|
+
<div class="form-group">
|
21
|
+
<label for="docTextArea">{{'MODEL.DESCRIPTION' | translate}}</label>
|
22
|
+
<textarea id="docTextArea" ng-disabled="status.loading" class="form-control" ng-model="saveDialog.description"></textarea>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
<div class="modal-footer">
|
26
|
+
|
27
|
+
<div class="pull-right">
|
28
|
+
<button type="button" class="btn" ng-click="close()" ng-disabled="status.loading" translate>ACTION.CANCEL</button>
|
29
|
+
<button class="btn btn-primary" ng-click="saveAndClose()" ng-disabled="status.loading" ng-show="!error" translate>ACTION.SAVE-AND-CLOSE</button>
|
30
|
+
<button class="btn btn-primary" ng-click="save()" ng-disabled="status.loading" ng-show="!error" translate>ACTION.SAVE</button>
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<div class="pull-right popup-error" ng-if="error && !error.isConflict">
|
34
|
+
<span>{{'MODEL.SAVE.ERROR' | translate}}</span>
|
35
|
+
</div>
|
36
|
+
|
37
|
+
<loading></loading>
|
38
|
+
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
</div>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
|
2
|
+
<div class="modal" ng-controller="KisBpmShapeSelectionCtrl">
|
3
|
+
<div class="modal-dialog">
|
4
|
+
<div class="modal-content">
|
5
|
+
<div class="modal-header">
|
6
|
+
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" ng-click="close()">×</button>
|
7
|
+
<h2>Change shape to:</h2>
|
8
|
+
</div>
|
9
|
+
<div class="modal-body">
|
10
|
+
|
11
|
+
<div class="kis-listener-grid" ng-grid="gridOptions"></div>
|
12
|
+
|
13
|
+
</div>
|
14
|
+
<div class="modal-footer">
|
15
|
+
<button ng-click="cancel()" class="btn btn-primary" translate>ACTION.CANCEL</button>
|
16
|
+
<button ng-click="select()" class="btn btn-primary" translate>ACTION.SELECT</button>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
|
2
|
+
<div class="modal" ng-controller="EditorUnsavedChangesPopupCrtl">
|
3
|
+
<div class="modal-dialog">
|
4
|
+
<div class="modal-content">
|
5
|
+
<div class="modal-header">
|
6
|
+
<h2 translate="EDITOR.POPUP.UNSAVED-CHANGES.TITLE"></h2>
|
7
|
+
</div>
|
8
|
+
<div class="modal-body">
|
9
|
+
<p translate="EDITOR.POPUP.UNSAVED-CHANGES.DESCRIPTION"></p>
|
10
|
+
</div>
|
11
|
+
<div class="modal-footer">
|
12
|
+
<div class="pull-right">
|
13
|
+
<button class="btn btn-danger" ng-click="ok()" translate="EDITOR.POPUP.UNSAVED-CHANGES.ACTION.DISCARD"></button>
|
14
|
+
<button class="btn btn-default" ng-click="cancel()" translate="EDITOR.POPUP.UNSAVED-CHANGES.ACTION.CONTINUE"></button>
|
15
|
+
</div>
|
16
|
+
<div class="loading pull-right" ng-show="loading">
|
17
|
+
<div class="l1"></div><div class="l2"></div><div class="l2"></div>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
</div>
|
@@ -0,0 +1,314 @@
|
|
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
|
+
* Controller for morph shape selection
|
22
|
+
*/
|
23
|
+
|
24
|
+
var KisBpmShapeSelectionCtrl = [ '$rootScope', '$scope', '$timeout', '$translate', function($rootScope, $scope, $timeout, $translate) {
|
25
|
+
|
26
|
+
$scope.selectedMorphShapes = [];
|
27
|
+
|
28
|
+
$scope.availableMorphShapes = [];
|
29
|
+
|
30
|
+
for (var i = 0; i < $scope.morphShapes.length; i++)
|
31
|
+
{
|
32
|
+
if ($scope.morphShapes[i].id != $scope.currentSelectedShape.getStencil().idWithoutNs())
|
33
|
+
{
|
34
|
+
$scope.availableMorphShapes.push($scope.morphShapes[i]);
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
// Config for grid
|
39
|
+
$scope.gridOptions = {
|
40
|
+
data: 'availableMorphShapes',
|
41
|
+
enableRowReordering: true,
|
42
|
+
headerRowHeight: 28,
|
43
|
+
multiSelect: false,
|
44
|
+
keepLastSelected : false,
|
45
|
+
selectedItems: $scope.selectedMorphShapes,
|
46
|
+
columnDefs: [{ field: 'objectId', displayName: 'Icon', width: 50, cellTemplate: 'editor-app/popups/icon-template.html?version=' + Date.now() },
|
47
|
+
{ field: 'name', displayName: 'Name'}]
|
48
|
+
};
|
49
|
+
|
50
|
+
// Click handler for save button
|
51
|
+
$scope.select = function() {
|
52
|
+
|
53
|
+
if ($scope.selectedMorphShapes.length > 0)
|
54
|
+
{
|
55
|
+
var MorphTo = ORYX.Core.Command.extend({
|
56
|
+
construct: function(shape, stencil, facade){
|
57
|
+
this.shape = shape;
|
58
|
+
this.stencil = stencil;
|
59
|
+
this.facade = facade;
|
60
|
+
},
|
61
|
+
execute: function(){
|
62
|
+
|
63
|
+
var shape = this.shape;
|
64
|
+
var stencil = this.stencil;
|
65
|
+
var resourceId = shape.resourceId;
|
66
|
+
|
67
|
+
// Serialize all attributes
|
68
|
+
var serialized = shape.serialize();
|
69
|
+
stencil.properties().each((function(prop) {
|
70
|
+
if(prop.readonly()) {
|
71
|
+
serialized = serialized.reject(function(serProp) {
|
72
|
+
return serProp.name==prop.id();
|
73
|
+
});
|
74
|
+
}
|
75
|
+
}).bind(this));
|
76
|
+
|
77
|
+
// Get shape if already created, otherwise create a new shape
|
78
|
+
if (this.newShape){
|
79
|
+
newShape = this.newShape;
|
80
|
+
this.facade.getCanvas().add(newShape);
|
81
|
+
} else {
|
82
|
+
newShape = this.facade.createShape({
|
83
|
+
type: stencil.id(),
|
84
|
+
namespace: stencil.namespace(),
|
85
|
+
resourceId: resourceId
|
86
|
+
});
|
87
|
+
}
|
88
|
+
|
89
|
+
// calculate new bounds using old shape's upperLeft and new shape's width/height
|
90
|
+
var boundsObj = serialized.find(function(serProp){
|
91
|
+
return (serProp.prefix === "oryx" && serProp.name === "bounds");
|
92
|
+
});
|
93
|
+
|
94
|
+
var changedBounds = null;
|
95
|
+
|
96
|
+
if (!this.facade.getRules().preserveBounds(shape.getStencil())) {
|
97
|
+
|
98
|
+
var bounds = boundsObj.value.split(",");
|
99
|
+
if (parseInt(bounds[0], 10) > parseInt(bounds[2], 10)) { // if lowerRight comes first, swap array items
|
100
|
+
var tmp = bounds[0];
|
101
|
+
bounds[0] = bounds[2];
|
102
|
+
bounds[2] = tmp;
|
103
|
+
tmp = bounds[1];
|
104
|
+
bounds[1] = bounds[3];
|
105
|
+
bounds[3] = tmp;
|
106
|
+
}
|
107
|
+
bounds[2] = parseInt(bounds[0], 10) + newShape.bounds.width();
|
108
|
+
bounds[3] = parseInt(bounds[1], 10) + newShape.bounds.height();
|
109
|
+
boundsObj.value = bounds.join(",");
|
110
|
+
|
111
|
+
} else {
|
112
|
+
|
113
|
+
var height = shape.bounds.height();
|
114
|
+
var width = shape.bounds.width();
|
115
|
+
|
116
|
+
// consider the minimum and maximum size of
|
117
|
+
// the new shape
|
118
|
+
|
119
|
+
if (newShape.minimumSize) {
|
120
|
+
if (shape.bounds.height() < newShape.minimumSize.height) {
|
121
|
+
height = newShape.minimumSize.height;
|
122
|
+
}
|
123
|
+
|
124
|
+
|
125
|
+
if (shape.bounds.width() < newShape.minimumSize.width) {
|
126
|
+
width = newShape.minimumSize.width;
|
127
|
+
}
|
128
|
+
}
|
129
|
+
|
130
|
+
if(newShape.maximumSize) {
|
131
|
+
if(shape.bounds.height() > newShape.maximumSize.height) {
|
132
|
+
height = newShape.maximumSize.height;
|
133
|
+
}
|
134
|
+
|
135
|
+
if(shape.bounds.width() > newShape.maximumSize.width) {
|
136
|
+
width = newShape.maximumSize.width;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
|
140
|
+
changedBounds = {
|
141
|
+
a : {
|
142
|
+
x: shape.bounds.a.x,
|
143
|
+
y: shape.bounds.a.y
|
144
|
+
},
|
145
|
+
b : {
|
146
|
+
x: shape.bounds.a.x + width,
|
147
|
+
y: shape.bounds.a.y + height
|
148
|
+
}
|
149
|
+
};
|
150
|
+
|
151
|
+
}
|
152
|
+
|
153
|
+
var oPos = shape.bounds.center();
|
154
|
+
if(changedBounds !== null) {
|
155
|
+
newShape.bounds.set(changedBounds);
|
156
|
+
}
|
157
|
+
|
158
|
+
// Set all related dockers
|
159
|
+
this.setRelatedDockers(shape, newShape);
|
160
|
+
|
161
|
+
// store DOM position of old shape
|
162
|
+
var parentNode = shape.node.parentNode;
|
163
|
+
var nextSibling = shape.node.nextSibling;
|
164
|
+
|
165
|
+
// Delete the old shape
|
166
|
+
this.facade.deleteShape(shape);
|
167
|
+
|
168
|
+
// Deserialize the new shape - Set all attributes
|
169
|
+
newShape.deserialize(serialized);
|
170
|
+
/*
|
171
|
+
* Change color to default if unchanged
|
172
|
+
* 23.04.2010
|
173
|
+
*/
|
174
|
+
if(shape.getStencil().property("oryx-bgcolor")
|
175
|
+
&& shape.properties["oryx-bgcolor"]
|
176
|
+
&& shape.getStencil().property("oryx-bgcolor").value().toUpperCase()== shape.properties["oryx-bgcolor"].toUpperCase()){
|
177
|
+
if(newShape.getStencil().property("oryx-bgcolor")){
|
178
|
+
newShape.setProperty("oryx-bgcolor", newShape.getStencil().property("oryx-bgcolor").value());
|
179
|
+
}
|
180
|
+
}
|
181
|
+
if(changedBounds !== null) {
|
182
|
+
newShape.bounds.set(changedBounds);
|
183
|
+
}
|
184
|
+
|
185
|
+
if(newShape.getStencil().type()==="edge" || (newShape.dockers.length==0 || !newShape.dockers[0].getDockedShape())) {
|
186
|
+
newShape.bounds.centerMoveTo(oPos);
|
187
|
+
}
|
188
|
+
|
189
|
+
if(newShape.getStencil().type()==="node" && (newShape.dockers.length==0 || !newShape.dockers[0].getDockedShape())) {
|
190
|
+
this.setRelatedDockers(newShape, newShape);
|
191
|
+
|
192
|
+
}
|
193
|
+
|
194
|
+
// place at the DOM position of the old shape
|
195
|
+
if(nextSibling) parentNode.insertBefore(newShape.node, nextSibling);
|
196
|
+
else parentNode.appendChild(newShape.node);
|
197
|
+
|
198
|
+
// Set selection
|
199
|
+
this.facade.setSelection([newShape]);
|
200
|
+
this.facade.getCanvas().update();
|
201
|
+
this.facade.updateSelection();
|
202
|
+
this.newShape = newShape;
|
203
|
+
|
204
|
+
},
|
205
|
+
rollback: function(){
|
206
|
+
|
207
|
+
if (!this.shape || !this.newShape || !this.newShape.parent) {return;}
|
208
|
+
|
209
|
+
// Append shape to the parent
|
210
|
+
this.newShape.parent.add(this.shape);
|
211
|
+
// Set dockers
|
212
|
+
this.setRelatedDockers(this.newShape, this.shape);
|
213
|
+
// Delete new shape
|
214
|
+
this.facade.deleteShape(this.newShape);
|
215
|
+
// Set selection
|
216
|
+
this.facade.setSelection([this.shape]);
|
217
|
+
// Update
|
218
|
+
this.facade.getCanvas().update();
|
219
|
+
this.facade.updateSelection();
|
220
|
+
},
|
221
|
+
|
222
|
+
/**
|
223
|
+
* Set all incoming and outgoing edges from the shape to the new shape
|
224
|
+
* @param {Shape} shape
|
225
|
+
* @param {Shape} newShape
|
226
|
+
*/
|
227
|
+
setRelatedDockers: function(shape, newShape){
|
228
|
+
|
229
|
+
if(shape.getStencil().type()==="node") {
|
230
|
+
|
231
|
+
(shape.incoming||[]).concat(shape.outgoing||[])
|
232
|
+
.each(function(i) {
|
233
|
+
i.dockers.each(function(docker) {
|
234
|
+
if (docker.getDockedShape() == shape) {
|
235
|
+
var rPoint = Object.clone(docker.referencePoint);
|
236
|
+
// Move reference point per percent
|
237
|
+
|
238
|
+
var rPointNew = {
|
239
|
+
x: rPoint.x*newShape.bounds.width()/shape.bounds.width(),
|
240
|
+
y: rPoint.y*newShape.bounds.height()/shape.bounds.height()
|
241
|
+
};
|
242
|
+
|
243
|
+
docker.setDockedShape(newShape);
|
244
|
+
// Set reference point and center to new position
|
245
|
+
docker.setReferencePoint(rPointNew);
|
246
|
+
if(i instanceof ORYX.Core.Edge) {
|
247
|
+
docker.bounds.centerMoveTo(rPointNew);
|
248
|
+
} else {
|
249
|
+
var absXY = shape.absoluteXY();
|
250
|
+
docker.bounds.centerMoveTo({x:rPointNew.x+absXY.x, y:rPointNew.y+absXY.y});
|
251
|
+
//docker.bounds.moveBy({x:rPointNew.x-rPoint.x, y:rPointNew.y-rPoint.y});
|
252
|
+
}
|
253
|
+
}
|
254
|
+
});
|
255
|
+
});
|
256
|
+
|
257
|
+
// for attached events
|
258
|
+
if(shape.dockers.length>0&&shape.dockers.first().getDockedShape()) {
|
259
|
+
newShape.dockers.first().setDockedShape(shape.dockers.first().getDockedShape());
|
260
|
+
newShape.dockers.first().setReferencePoint(Object.clone(shape.dockers.first().referencePoint));
|
261
|
+
}
|
262
|
+
|
263
|
+
} else { // is edge
|
264
|
+
newShape.dockers.first().setDockedShape(shape.dockers.first().getDockedShape());
|
265
|
+
newShape.dockers.first().setReferencePoint(shape.dockers.first().referencePoint);
|
266
|
+
newShape.dockers.last().setDockedShape(shape.dockers.last().getDockedShape());
|
267
|
+
newShape.dockers.last().setReferencePoint(shape.dockers.last().referencePoint);
|
268
|
+
}
|
269
|
+
}
|
270
|
+
});
|
271
|
+
|
272
|
+
var stencil = undefined;
|
273
|
+
var stencilSets = $scope.editor.getStencilSets().values();
|
274
|
+
|
275
|
+
var stencilId = $scope.selectedMorphShapes[0].id;
|
276
|
+
if ($scope.selectedMorphShapes[0].genericTaskId)
|
277
|
+
{
|
278
|
+
stencilId = $scope.selectedMorphShapes[0].genericTaskId;
|
279
|
+
}
|
280
|
+
|
281
|
+
for (var i = 0; i < stencilSets.length; i++)
|
282
|
+
{
|
283
|
+
var stencilSet = stencilSets[i];
|
284
|
+
var nodes = stencilSet.nodes();
|
285
|
+
for (var j = 0; j < nodes.length; j++)
|
286
|
+
{
|
287
|
+
if (nodes[j].idWithoutNs() === stencilId)
|
288
|
+
{
|
289
|
+
stencil = nodes[j];
|
290
|
+
break;
|
291
|
+
}
|
292
|
+
}
|
293
|
+
}
|
294
|
+
|
295
|
+
if (!stencil) return;
|
296
|
+
|
297
|
+
// Create and execute command (for undo/redo)
|
298
|
+
var command = new MorphTo($scope.currentSelectedShape, stencil, $scope.editor);
|
299
|
+
$scope.editor.executeCommands([command]);
|
300
|
+
}
|
301
|
+
|
302
|
+
$scope.close();
|
303
|
+
};
|
304
|
+
|
305
|
+
$scope.cancel = function() {
|
306
|
+
$scope.$hide();
|
307
|
+
};
|
308
|
+
|
309
|
+
// Close button handler
|
310
|
+
$scope.close = function() {
|
311
|
+
$scope.$hide();
|
312
|
+
};
|
313
|
+
|
314
|
+
}];
|